]> Dogcows Code - chaz/openbox/blobdiff - openbox/session.c
don't change the restart type with the session manager when openbox exits. it's not...
[chaz/openbox] / openbox / session.c
index 54ce34ed4b64544c723f1bae50e0bf215a6b3f35..f44d3b4c949e8c8c74c9b5eee762fb8d5f971a84 100644 (file)
@@ -25,7 +25,7 @@
 
 GList *session_saved_state;
 
-void session_startup(gint *argc, gchar ***argv) {}
+void session_startup(gint argc, gchar **argv) {}
 void session_shutdown() {}
 GList* session_state_find(ObClient *c) { return NULL; }
 gboolean session_state_cmp(ObSessionState *s, ObClient *c) { return FALSE; }
@@ -142,17 +142,25 @@ static void parse_args(gint *argc, gchar ***argv)
     }
 }
 
-void session_startup(gint *argc, gchar ***argv)
+void session_startup(gint argc, gchar **argv)
 {
 #define SM_ERR_LEN 1024
 
     SmcCallbacks cb;
     gchar sm_err[SM_ERR_LEN];
+    gint i;
 
-    parse_args(argc, argv);
+    sm_argc = argc;
+    sm_argv = g_new(gchar*, argc);
+    for (i = 0; i < argc; ++i)
+        sm_argv[i] = argv[i];
 
-    if (sm_disable)
+    parse_args(&sm_argc, &sm_argv);
+
+    if (sm_disable) {
+        g_free(sm_argv);
         return;
+    }
 
     sm_sessions_path = g_build_filename(parse_xdg_data_home_path(),
                                         "openbox", "sessions", NULL);
@@ -174,9 +182,6 @@ void session_startup(gint *argc, gchar ***argv)
         g_free(filename);
     }
 
-    sm_argc = *argc;
-    sm_argv = *argv;
-
     cb.save_yourself.callback = sm_save_yourself;
     cb.save_yourself.client_data = NULL;
 
@@ -254,27 +259,15 @@ void session_startup(gint *argc, gchar ***argv)
 
 void session_shutdown()
 {
+    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;
-
-        /* 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;
-
-        props[0] = &prop_hint;
-
-        SmcSetProperties(sm_conn, 1, props);
-
         SmcCloseConnection(sm_conn, 0, NULL);
 
         while (session_saved_state) {
This page took 0.024113 seconds and 4 git commands to generate.