[Xfce4-commits] <libxfce4ui:new-sm-client> make use of gnome-style DESKTOP_AUTOSTART_ID env var for client id
Brian J. Tarricone
noreply at xfce.org
Sat Sep 19 11:52:03 CEST 2009
Updating branch refs/heads/kelnos/new-sm-client
to b6bf9168dc2e0dbcb535106f60fc7465265db361 (commit)
from 1bef907e54369a3b08bedc15bb8d347983d2399b (commit)
commit b6bf9168dc2e0dbcb535106f60fc7465265db361
Author: Brian J. Tarricone <brian at tarricone.org>
Date: Sat Sep 19 02:47:13 2009 -0700
make use of gnome-style DESKTOP_AUTOSTART_ID env var for client id
libxfce4ui/xfce-sm-client.c | 28 +++++++++++++++++++++++++---
1 files changed, 25 insertions(+), 3 deletions(-)
diff --git a/libxfce4ui/xfce-sm-client.c b/libxfce4ui/xfce-sm-client.c
index 0efd0df..d948659 100644
--- a/libxfce4ui/xfce-sm-client.c
+++ b/libxfce4ui/xfce-sm-client.c
@@ -538,12 +538,34 @@ xfce_sm_client_constructor(GType type,
guint n_construct_params,
GObjectConstructParam *construct_params)
{
+ GObject *obj;
+ const gchar *desktop_autostart_id;
+
if(sm_client_singleton)
return G_OBJECT(sm_client_singleton);
- return G_OBJECT_CLASS(xfce_sm_client_parent_class)->constructor(type,
- n_construct_params,
- construct_params);
+ obj = G_OBJECT_CLASS(xfce_sm_client_parent_class)->constructor(type,
+ n_construct_params,
+ construct_params);
+
+ desktop_autostart_id = g_getenv("DESKTOP_AUTOSTART_ID");
+ if(desktop_autostart_id) {
+ XfceSMClient *sm_client = XFCE_SM_CLIENT(obj);
+
+ if(sm_client->client_id
+ && strcmp(sm_client->client_id, desktop_autostart_id))
+ {
+ g_warning("SM client ID specified on command line (%s) is " \
+ "different from ID specified by $DESKTOP_AUTOSTART_ID " \
+ "(%s); using env var", sm_client->client_id,
+ desktop_autostart_id);
+ }
+
+ xfce_sm_client_set_client_id(sm_client, desktop_autostart_id);
+ xfce_unsetenv("DESKTOP_AUTOSTART_ID");
+ }
+
+ return obj;
}
static void
More information about the Xfce4-commits
mailing list