diff options
Diffstat (limited to 'gdbus/object.c')
-rw-r--r-- | gdbus/object.c | 16 |
1 files changed, 13 insertions, 3 deletions
diff --git a/gdbus/object.c b/gdbus/object.c index 96db51665..4cf2e2f94 100644 --- a/gdbus/object.c +++ b/gdbus/object.c @@ -1720,9 +1720,10 @@ static void process_property_changes(struct generic_data *data) } } -void g_dbus_emit_property_changed(DBusConnection *connection, +void g_dbus_emit_property_changed_full(DBusConnection *connection, const char *path, const char *interface, - const char *name) + const char *name, + GDbusPropertyChangedFlags flags) { const GDBusPropertyTable *property; struct generic_data *data; @@ -1760,7 +1761,16 @@ void g_dbus_emit_property_changed(DBusConnection *connection, iface->pending_prop = g_slist_prepend(iface->pending_prop, (void *) property); - add_pending(data); + if (flags & G_DBUS_PROPERTY_CHANGED_FLAG_FLUSH) + process_property_changes(data); + else + add_pending(data); +} + +void g_dbus_emit_property_changed(DBusConnection *connection, const char *path, + const char *interface, const char *name) +{ + g_dbus_emit_property_changed_full(connection, path, interface, name, 0); } gboolean g_dbus_get_properties(DBusConnection *connection, const char *path, |