Init interface proxies on hotplug too
authorDavid Zeuthen <zeuthen@gmail.com>
Sat, 30 Jun 2012 16:28:46 +0000 (12:28 -0400)
committerDavid Zeuthen <zeuthen@gmail.com>
Sat, 30 Jun 2012 16:28:46 +0000 (12:28 -0400)
GDBusObjectManagerClient only emits object-added for an object with N
interface (not N separate interface-added signals).

Signed-off-by: David Zeuthen <zeuthen@gmail.com>
udisks/udisksclient.c

index 93ef677..a6f9756 100644 (file)
@@ -1755,6 +1755,16 @@ on_object_added (GDBusObjectManager  *manager,
                  gpointer             user_data)
 {
   UDisksClient *client = UDISKS_CLIENT (user_data);
+  GList *interfaces, *l;
+
+  interfaces = g_dbus_object_get_interfaces (object);
+  for (l = interfaces; l != NULL; l = l->next)
+    {
+      init_interface_proxy (client, G_DBUS_PROXY (l->data));
+    }
+  g_list_foreach (interfaces, (GFunc) g_object_unref, NULL);
+  g_list_free (interfaces);
+
   queue_changed (client);
 }