cpw.gillux.detachablepurple: 59b50c96: Protected the update of client object pr...
gillux at soc.pidgin.im
gillux at soc.pidgin.im
Mon May 14 23:26:55 EDT 2012
----------------------------------------------------------------------
Revision: 59b50c96182297589484025e9bce58d5e9c87be3
Parent: ac8786356f427d2f3a57233219efa1852471f021
Author: gillux at soc.pidgin.im
Date: 05/14/12 23:19:41
Branch: im.pidgin.cpw.gillux.detachablepurple
URL: http://d.pidgin.im/viewmtn/revision/info/59b50c96182297589484025e9bce58d5e9c87be3
Changelog:
Protected the update of client object properties by the daemon with
the PropertyChanged D-Bus signal, to avoid endless loops of property
notifications between clients and daemon.
Changes against parent ac8786356f427d2f3a57233219efa1852471f021
patched libpurple/pobject.c
-------------- next part --------------
============================================================
--- libpurple/pobject.c e3d1d2a0015bd80e1f9d2982c7895d573d08a67f
+++ libpurple/pobject.c 31b3e0f66618b332d7c89307cff5cce7092b0778
@@ -666,8 +666,15 @@ purple_object_dbus_prop_changed(PurpleOb
static void
purple_object_dbus_prop_changed(PurpleObject *pobj, const char *prop_name, GVariant *prop_value)
{
+ gboolean is_sync;
+
+ /* Temporary mark the object as not synchronized,
+ * so that we can locally update its property. */
+ is_sync = purple_object_get_synchronized(pobj);
+ purple_object_set_synchronized(pobj, FALSE);
if (!purple_object_set_dbus_property(pobj, prop_name, prop_value))
purple_debug_warning("dbus", "Ignored a PropertyChanged signal about a property we don't care: %s\n", prop_name);
+ purple_object_set_synchronized(pobj, is_sync);
}
void
More information about the Commits
mailing list