]> Dogcows Code - chaz/openbox/blobdiff - openbox/session.c
fix compiling without session manager support
[chaz/openbox] / openbox / session.c
index fa9ce48459ca6afa68fc8f9c9ad545c9d238aade..01bb56e2fa229540388850e2fb974788ba5bb28a 100644 (file)
@@ -26,7 +26,7 @@
 GList *session_saved_state;
 
 void session_startup(gint argc, gchar **argv) {}
-void session_shutdown() {}
+void session_shutdown(gboolean permanent) {}
 GList* session_state_find(ObClient *c) { return NULL; }
 gboolean session_state_cmp(ObSessionState *s, ObClient *c) { return FALSE; }
 void session_state_free(ObSessionState *state) {}
@@ -257,29 +257,36 @@ void session_startup(gint argc, gchar **argv)
     }
 }
 
-void session_shutdown()
+void session_shutdown(gboolean permanent)
 {
+    if (sm_disable)
+        return;
+
     g_free(sm_sessions_path);
     g_free(save_file);
     g_free(sm_id);
     g_free(sm_argv);
 
     if (sm_conn) {
-        SmPropValue val_hint;
-        SmProp prop_hint = { SmRestartStyleHint, SmCARD8, 1, };
-        SmProp *props[1];
-        gulong hint;
+        /* if permanent is true then we will change our session state so that
+           the SM won't run us again */
+        if (permanent) {
+            SmPropValue val_hint;
+            SmProp prop_hint = { SmRestartStyleHint, SmCARD8, 1, };
+            SmProp *props[1];
+            gulong hint;
 
-        /* when we exit, we want to reset this to a more friendly state */
-        hint = SmRestartIfRunning;
-        val_hint.value = &hint;
-        val_hint.length = 1;
+            /* when we exit, we want to reset this to a more friendly state */
+            hint = SmRestartIfRunning;
+            val_hint.value = &hint;
+            val_hint.length = 1;
 
-        prop_hint.vals = &val_hint;
+            prop_hint.vals = &val_hint;
 
-        props[0] = &prop_hint;
+            props[0] = &prop_hint;
 
-        SmcSetProperties(sm_conn, 1, props);
+            SmcSetProperties(sm_conn, 1, props);
+        }
 
         SmcCloseConnection(sm_conn, 0, NULL);
 
This page took 0.024438 seconds and 4 git commands to generate.