]> Dogcows Code - chaz/openbox/blobdiff - openbox/session.c
save the config type in the session command line arguments
[chaz/openbox] / openbox / session.c
index b07f16942418cbbbc56f2e71a9571d288a516d63..7a9a081d8072d0c8ece42c52ee31e46a78d12004 100644 (file)
@@ -319,12 +319,15 @@ static void session_setup_clone_command()
 static void session_setup_restart_command()
 {
     gint i;
+    gint num = 4;
 
-    SmPropValue *vals = g_new(SmPropValue, sm_argc + 4);
+    if (ob_config_type) num += 2;
+
+    SmPropValue *vals = g_new(SmPropValue, sm_argc + num);
     SmProp prop = {
         .name = g_strdup(SmRestartCommand),
         .type = g_strdup(SmLISTofARRAY8),
-        .num_vals = sm_argc + 4,
+        .num_vals = sm_argc + num,
         .vals = vals
     };
     SmProp *list = ∝
@@ -350,11 +353,22 @@ static void session_setup_restart_command()
     ob_debug_type(OB_DEBUG_SM, "    %s\n", vals[i+2].value);
     ob_debug_type(OB_DEBUG_SM, "    %s\n", vals[i+3].value);
 
+    if (ob_config_type) {
+        vals[i+4].value = g_strdup("--config-namespace");
+        vals[i+4].length = strlen("--config-namespace") + 1;
+        vals[i+5].value = ob_config_type;
+        vals[i+5].length = strlen(ob_config_type) + 1;
+        ob_debug_type(OB_DEBUG_SM, "    %s\n", vals[i+4].value);
+        ob_debug_type(OB_DEBUG_SM, "    %s\n", vals[i+5].value);
+    }
+
     SmcSetProperties(sm_conn, 1, &list);
     g_free(prop.name);
     g_free(prop.type);
     g_free(vals[i].value);
     g_free(vals[i+2].value);
+    if (ob_config_type)
+        g_free(vals[i+4].value);
     g_free(vals);
 }
 
This page took 0.023069 seconds and 4 git commands to generate.