Merge branch 'backport' into work
[mikachu/openbox.git] / openbox / session.c
index 3cf8fbe..ca45adb 100644 (file)
@@ -408,7 +408,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");
+#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", vendor);
@@ -818,7 +833,7 @@ void session_request_logout(gboolean silent)
 {
     if (sm_conn) {
         SmcRequestSaveYourself(sm_conn,
-                               SmSaveBoth,
+                               SmSaveGlobal,
                                TRUE, /* logout */
                                (silent ?
                                 SmInteractStyleNone : SmInteractStyleAny),