GSettingsBackend: emit changes to correct thread

When g_settings_apply() is called on a delayed settings backend and
there is a D-Bus error when communicating with dconf-service, recent
versions of the dconf GSettingsBackend call a function in GLib that
improperly delivered the signal directly instead of using
g_main_context_invoke().

This patch fixes this function to route in the same way as the others so
that the signal is dispatched in the proper GMainContext.
This commit is contained in:
Ryan Lortie 2011-09-06 14:01:52 -04:00
parent 8060a7a207
commit 27fbaf3712

View File

@ -676,7 +676,6 @@ g_settings_backend_changed_tree (GSettingsBackend *backend,
GTree *tree,
gpointer origin_tag)
{
GSettingsBackendWatch *watch;
const gchar **keys;
gchar *path;
@ -696,10 +695,7 @@ g_settings_backend_changed_tree (GSettingsBackend *backend,
}
#endif
for (watch = backend->priv->watches; watch; watch = watch->next)
watch->vtable->keys_changed (watch->target, backend,
path, keys, origin_tag);
g_settings_backend_keys_changed (backend, path, keys, origin_tag);
g_free (path);
g_free (keys);
}