diff options
author | Ryan Lortie <desrt@desrt.ca> | 2010-05-18 16:17:31 -0400 |
---|---|---|
committer | Ryan Lortie <desrt@desrt.ca> | 2010-05-18 16:21:48 -0400 |
commit | 3ff27b0f836468e5c160a6b47a963d51416f45ad (patch) | |
tree | 61a5f76b511fd172cf90843eca135c72f19e1f4e /gsettings | |
parent | 29ecbdf6aaae6b06a5dd6bfdb86b9165be8fb046 (diff) | |
download | dconf-3ff27b0f836468e5c160a6b47a963d51416f45ad.tar.gz |
GDBus porting fixups
- fix signal emission
- adapt the backend code to deal with the fact that we are
using GVariant* containing 'variant' now.
Diffstat (limited to 'gsettings')
-rw-r--r-- | gsettings/dconfdatabase.c | 10 |
1 files changed, 8 insertions, 2 deletions
diff --git a/gsettings/dconfdatabase.c b/gsettings/dconfdatabase.c index fcd2ba6..44ce35a 100644 --- a/gsettings/dconfdatabase.c +++ b/gsettings/dconfdatabase.c @@ -266,6 +266,7 @@ dconf_database_incoming_signal (DConfDatabase *database, { const gchar **keys; const gchar *name; + gboolean is_path; guint64 serial; if (strcmp (g_dbus_message_get_interface (message), @@ -276,6 +277,8 @@ dconf_database_incoming_signal (DConfDatabase *database, g_variant_get (g_dbus_message_get_body (message), "(t&s^a&s)", &serial, &name, &keys); + is_path = g_str_has_suffix (name, "/"); + if (serial != database->anti_expose) { GSList *node; @@ -283,9 +286,12 @@ dconf_database_incoming_signal (DConfDatabase *database, if (keys[0] == NULL) { for (node = database->backends; node; node = node->next) - g_settings_backend_changed (node->data, name, NULL); + if (is_path) + g_settings_backend_path_changed (node->data, name, NULL); + else + g_settings_backend_changed (node->data, name, NULL); } - else + else if (is_path) { for (node = database->backends; node; node = node->next) g_settings_backend_keys_changed (node->data, name, keys, NULL); |