[Xfce4-commits] r29995 - xfconf/trunk/xfconf

Brian Tarricone kelnos at xfce.org
Sat Jun 6 11:05:49 CEST 2009


Author: kelnos
Date: 2009-06-06 09:05:49 +0000 (Sat, 06 Jun 2009)
New Revision: 29995

Modified:
   xfconf/trunk/xfconf/xfconf-binding.c
Log:
bindings: fix async property fetch when the channel has a property base

Modified: xfconf/trunk/xfconf/xfconf-binding.c
===================================================================
--- xfconf/trunk/xfconf/xfconf-binding.c	2009-06-04 09:35:23 UTC (rev 29994)
+++ xfconf/trunk/xfconf/xfconf-binding.c	2009-06-06 09:05:49 UTC (rev 29995)
@@ -324,6 +324,7 @@
 {
     XfconfGBinding *binding;
     gchar buf[1024], *channel_name = NULL;
+    gchar *property_base = NULL, *real_property;
     GSList *bindings;
 
     binding = g_slice_new0(XfconfGBinding);
@@ -371,13 +372,25 @@
                                bindings, (GDestroyNotify)g_slist_free);
     }
 
-    g_object_get(G_OBJECT(channel), "channel-name", &channel_name, NULL);
+    g_object_get(G_OBJECT(channel),
+                 "channel-name", &channel_name,
+                 "property-base", &property_base,
+                 NULL);
+    if(property_base)
+        real_property = g_strconcat(property_base, xfconf_property, NULL);
+    else
+        real_property = (gchar *)xfconf_property;
+
     binding->call = xfconf_client_get_property_async(_xfconf_get_dbus_g_proxy(),
                                                      channel_name,
-                                                     xfconf_property,
+                                                     real_property,
                                                      xfconf_g_binding_initial_value_received,
                                                      binding);
     g_free(channel_name);
+    if(property_base) {
+        g_free(property_base);
+        g_free(real_property);
+    }
 
     binding->id = ++__last_binding_id;
     if(G_UNLIKELY(binding->id == 0)) {




More information about the Xfce4-commits mailing list