summaryrefslogtreecommitdiff
path: root/engine
diff options
context:
space:
mode:
authorRyan Lortie <desrt@desrt.ca>2012-07-15 12:31:33 -0400
committerRyan Lortie <desrt@desrt.ca>2012-07-15 12:39:34 -0400
commit301f6cdda6e3ca520cbe4bb568c7922f39ff8887 (patch)
tree223627e5e00eaf666628d8d01b91384e73e70fd0 /engine
parentc9e5642b2b643b8e75a7fa24d8527c4c956f048b (diff)
downloaddconf-301f6cdda6e3ca520cbe4bb568c7922f39ff8887.tar.gz
engine: bring back origin_tag logic
The GSettings backend still wants to use this and it does us no harm to have it on the engine API (which is only visible internally). Adjust the various consumers of the engine to the new API. Thanks to Rui Matos for reminding me about this...
Diffstat (limited to 'engine')
-rw-r--r--engine/dconf-engine.c14
-rw-r--r--engine/dconf-engine.h2
2 files changed, 10 insertions, 6 deletions
diff --git a/engine/dconf-engine.c b/engine/dconf-engine.c
index 9c80d9b..b1c0dd3 100644
--- a/engine/dconf-engine.c
+++ b/engine/dconf-engine.c
@@ -729,7 +729,7 @@ dconf_engine_watch_established (DConfEngine *engine,
* We don't know what changed, so we can just say that potentially
* everything changed. This case is very rare, anyway...
*/
- dconf_engine_change_notify (engine, "/", changes, NULL, engine->user_data);
+ dconf_engine_change_notify (engine, "/", changes, NULL, NULL, engine->user_data);
}
dconf_engine_call_handle_free (handle);
@@ -858,13 +858,14 @@ static void dconf_engine_manage_queue (DConfEngine *engine);
static void
dconf_engine_emit_changes (DConfEngine *engine,
- DConfChangeset *changeset)
+ DConfChangeset *changeset,
+ gpointer origin_tag)
{
const gchar *prefix;
const gchar * const *changes;
if (dconf_changeset_describe (changeset, &prefix, &changes, NULL))
- dconf_engine_change_notify (engine, prefix, changes, NULL, engine->user_data);
+ dconf_engine_change_notify (engine, prefix, changes, NULL, origin_tag, engine->user_data);
}
static void
@@ -924,7 +925,7 @@ dconf_engine_change_completed (DConfEngine *engine,
* message as a warning.
*/
g_warning ("failed to commit changes to dconf: %s", error->message);
- dconf_engine_emit_changes (engine, oc->change);
+ dconf_engine_emit_changes (engine, oc->change, NULL);
}
dconf_changeset_unref (oc->change);
@@ -1003,6 +1004,7 @@ dconf_engine_changeset_changes_only_writable_keys (DConfEngine *engine,
gboolean
dconf_engine_change_fast (DConfEngine *engine,
DConfChangeset *changeset,
+ gpointer origin_tag,
GError **error)
{
GList *node;
@@ -1056,7 +1058,7 @@ dconf_engine_change_fast (DConfEngine *engine,
dconf_engine_unlock_queues (engine);
/* Emit the signal after dropping the lock to avoid deadlock on re-entry. */
- dconf_engine_emit_changes (engine, changeset);
+ dconf_engine_emit_changes (engine, changeset, origin_tag);
return TRUE;
}
@@ -1124,7 +1126,7 @@ dconf_engine_handle_dbus_signal (GBusType type,
* Check last_handled to determine if we should ignore it.
*/
if (!engine->last_handled || !g_str_equal (engine->last_handled, tag))
- dconf_engine_change_notify (engine, prefix, changes, tag, engine->user_data);
+ dconf_engine_change_notify (engine, prefix, changes, tag, NULL, engine->user_data);
engines = g_slist_delete_link (engines, engines);
diff --git a/engine/dconf-engine.h b/engine/dconf-engine.h
index 0128f8b..3c65e87 100644
--- a/engine/dconf-engine.h
+++ b/engine/dconf-engine.h
@@ -86,6 +86,7 @@ void dconf_engine_change_notify (DConfEn
const gchar *prefix,
const gchar * const *changes,
const gchar *tag,
+ gpointer origin_tag,
gpointer user_data);
/* These functions are implemented by the engine */
@@ -140,6 +141,7 @@ void dconf_engine_unwatch_fast (DConfEn
G_GNUC_INTERNAL
gboolean dconf_engine_change_fast (DConfEngine *engine,
DConfChangeset *changeset,
+ gpointer origin_tag,
GError **error);
/* Synchronous API: all calls block until completed */