From 04c6d45ac06966201740bad9db50cb4ccc5a04ef Mon Sep 17 00:00:00 2001 From: Dana Jansens Date: Mon, 3 Mar 2008 17:00:00 +0100 Subject: use SmSaveGlobal to log out. this will make apps save their documents or whatever so that you don't lose things, but it won't take a snapshot of the current session --- openbox/session.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'openbox/session.c') diff --git a/openbox/session.c b/openbox/session.c index 4483c051..82e292b3 100644 --- a/openbox/session.c +++ b/openbox/session.c @@ -809,7 +809,7 @@ void session_request_logout(gboolean silent) { if (sm_conn) { SmcRequestSaveYourself(sm_conn, - SmSaveBoth, + SmSaveGlobal, TRUE, /* logout */ (silent ? SmInteractStyleNone : SmInteractStyleAny), -- cgit v1.2.3 From d394d8c613b8b85cd3ee92b6114716e57f8d03ce Mon Sep 17 00:00:00 2001 From: Dana Jansens Date: Mon, 3 Mar 2008 07:46:24 -0500 Subject: don't save our state for SmSaveGlobal session saves, just Local ones --- openbox/session.c | 17 ++++++++++++++++- 1 file changed, 16 insertions(+), 1 deletion(-) (limited to 'openbox/session.c') diff --git a/openbox/session.c b/openbox/session.c index 82e292b3..ab6864b3 100644 --- a/openbox/session.c +++ b/openbox/session.c @@ -404,7 +404,22 @@ static void sm_save_yourself(SmcConn conn, SmPointer data, gint save_type, ObSMSaveData *savedata = NULL; gchar *vendor; - ob_debug_type(OB_DEBUG_SM, "Session save requested\n"); +#ifdef DEBUG + { + const gchar *sname = + (save_type == SmSaveLocal ? "SmSaveLocal" : + (save_type == SmSaveGlobal ? "SmSaveGlobal" : + (save_type == SmSaveBoth ? "SmSaveBoth" : "INVALID!!"))); + ob_debug_type(OB_DEBUG_SM, "Session save requested, type %s\n", sname); + } +#endif + + if (save_type == SmSaveGlobal) { + /* we have no data to save. we only store state to get back to where + we were, we don't keep open writable files or anything */ + SmcSaveYourselfDone(conn, TRUE); + return; + } vendor = SmcVendor(sm_conn); ob_debug_type(OB_DEBUG_SM, "Session manager's vendor: %s\n", vendor); -- cgit v1.2.3