From 5c01dc651a220ad1ccce9502da577d81f1877388 Mon Sep 17 00:00:00 2001 From: Dana Jansens Date: Thu, 10 Dec 2009 15:00:56 -0500 Subject: [PATCH] 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. --- openbox/openbox.c | 13 +++++++++++++ 1 file changed, 13 insertions(+) diff --git a/openbox/openbox.c b/openbox/openbox.c index 4a49c802..60e147c3 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) -- 2.44.0