diff --git a/gdbus/object.c b/gdbus/object.c index 3101ca6b..47116bd5 100644 --- a/gdbus/object.c +++ b/gdbus/object.c @@ -1213,9 +1213,6 @@ static struct generic_data *object_path_ref(DBusConnection *connection, manager_methods, manager_signals, NULL, data, NULL); - add_interface(data, DBUS_INTERFACE_PROPERTIES, properties_methods, - properties_signals, NULL, data, NULL); - return data; } @@ -1336,6 +1333,12 @@ gboolean g_dbus_register_interface(DBusConnection *connection, return FALSE; } + if (properties != NULL && !find_interface(data->interfaces, + DBUS_INTERFACE_PROPERTIES)) + add_interface(data, DBUS_INTERFACE_PROPERTIES, + properties_methods, properties_signals, NULL, + data, NULL); + add_interface(data, name, methods, signals, properties, user_data, destroy);