[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