]> Dogcows Code - chaz/openbox/blobdiff - openbox/openbox.c
Get the session client id from new gnome-session
[chaz/openbox] / openbox / openbox.c
index 7221556e1fb62aa94bb11d00afd6f8465d956014..60e147c357eeee55a304a0db3f81905e45049184 100644 (file)
@@ -85,7 +85,6 @@
 #include <X11/Xlib.h>
 #include <X11/keysym.h>
 
-
 RrInstance   *ob_rr_inst;
 RrImageCache *ob_rr_icons;
 RrTheme      *ob_rr_theme;
@@ -148,7 +147,6 @@ gint main(gint argc, gchar **argv)
         session_startup(argc, argv);
     }
 
-
     ob_display = XOpenDisplay(NULL);
     if (ob_display == NULL)
         ob_exit_with_error(_("Failed to open the display from the DISPLAY environment variable."));
@@ -223,7 +221,6 @@ gint main(gint argc, gchar **argv)
     cursors[OB_CURSOR_NORTHWEST] = load_cursor("top_left_corner",
                                                XC_top_left_corner);
 
-
     prop_startup(); /* get atoms values for the display */
     extensions_query_all(); /* find which extensions are present */
 
@@ -564,8 +561,21 @@ static void remove_args(gint *argc, gchar **argv, gint index, gint num)
 
 static void parse_env()
 {
+    const gchar *id;
+
     /* unset this so we don't pass it on unknowingly */
     unsetenv("DESKTOP_STARTUP_ID");
+
+    /* this is how gnome-session passes in a session client id */
+    id = g_getenv("DESKTOP_AUTOSTART_ID");
+    if (id) {
+        unsetenv("DESKTOP_AUTOSTART_ID");
+        if (ob_sm_id) g_free(ob_sm_id);
+        ob_sm_id = g_strdup(id);
+        ob_debug_type(OB_DEBUG_SM,
+                      "DESKTOP_AUTOSTART_ID %s supercedes --sm-client-id\n",
+                      ob_sm_id);
+    }
 }
 
 static void parse_args(gint *argc, gchar **argv)
This page took 0.027746 seconds and 4 git commands to generate.