summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--daemon/gdm-display.c32
1 files changed, 22 insertions, 10 deletions
diff --git a/daemon/gdm-display.c b/daemon/gdm-display.c
index b1adae8b..dec07184 100644
--- a/daemon/gdm-display.c
+++ b/daemon/gdm-display.c
@@ -289,6 +289,21 @@ on_name_vanished (GDBusConnection *connection,
queue_finish (GDM_DISPLAY (user_data));
}
+static void
+gdm_display_real_set_slave_bus_name_finish (GObject *source_object,
+ GAsyncResult *res,
+ gpointer user_data)
+{
+ GdmDisplay *display = user_data;
+
+ display->priv->slave_bus_proxy = GDM_DBUS_SLAVE (gdm_dbus_slave_proxy_new_finish (res, NULL));
+ g_object_bind_property (G_OBJECT (display->priv->slave_bus_proxy),
+ "session-id",
+ G_OBJECT (display),
+ "session-id",
+ G_BINDING_DEFAULT);
+}
+
static gboolean
gdm_display_real_set_slave_bus_name (GdmDisplay *display,
const char *name,
@@ -310,16 +325,13 @@ gdm_display_real_set_slave_bus_name (GdmDisplay *display,
NULL);
g_clear_object (&display->priv->slave_bus_proxy);
- display->priv->slave_bus_proxy = GDM_DBUS_SLAVE (gdm_dbus_slave_proxy_new_sync (display->priv->connection,
- G_DBUS_PROXY_FLAGS_NONE,
- name,
- GDM_SLAVE_PATH,
- NULL, NULL));
- g_object_bind_property (G_OBJECT (display->priv->slave_bus_proxy),
- "session-id",
- G_OBJECT (display),
- "session-id",
- G_BINDING_DEFAULT);
+ gdm_dbus_slave_proxy_new (display->priv->connection,
+ G_DBUS_PROXY_FLAGS_NONE,
+ name,
+ GDM_SLAVE_PATH,
+ NULL,
+ gdm_display_real_set_slave_bus_name_finish,
+ display);
return TRUE;
}