From: Dana Jansens Date: Thu, 10 Dec 2009 20:00:56 +0000 (-0500) Subject: Get the session client id from new gnome-session X-Git-Tag: release-3.4.9~4^2~6 X-Git-Url: http://git.openbox.org/?p=mikachu%2Fopenbox.git;a=commitdiff_plain;h=5c01dc651a220ad1ccce9502da577d81f1877388 Get the session client id from new gnome-session See http://live.gnome.org/SessionManagement/GnomeSession#A1._Launch Gnome-session sets the DESKTOP_AUTOSTART_ID env variable with the SM client id instead of passing it on the command line. --- diff --git a/openbox/openbox.c b/openbox/openbox.c index 4a49c80..60e147c 100644 --- a/openbox/openbox.c +++ b/openbox/openbox.c @@ -561,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)