summaryrefslogtreecommitdiff
path: root/daemon/gdm-display.c
diff options
context:
space:
mode:
Diffstat (limited to 'daemon/gdm-display.c')
-rw-r--r--daemon/gdm-display.c47
1 files changed, 47 insertions, 0 deletions
diff --git a/daemon/gdm-display.c b/daemon/gdm-display.c
index 0d719c1c..950ab1f9 100644
--- a/daemon/gdm-display.c
+++ b/daemon/gdm-display.c
@@ -1690,6 +1690,53 @@ gdm_display_start_initial_session_finish (GdmDisplay *display,
}
static void
+on_slave_initial_session_reset (GdmDBusSlave *slave,
+ GAsyncResult *result,
+ GTask *task)
+{
+ GError *error = NULL;
+
+ if (!gdm_dbus_slave_call_reset_initial_session_finish (slave, result, &error)) {
+ g_task_return_error (task, error);
+ return;
+ }
+
+ g_debug ("GdmDisplay: slave reset initial session");
+
+ g_task_return_boolean (task, TRUE);
+}
+
+void
+gdm_display_reset_initial_session (GdmDisplay *display,
+ GCancellable *cancellable,
+ GAsyncReadyCallback callback,
+ gpointer user_data)
+{
+ GTask *task;
+
+ task = g_task_new (display, cancellable, callback, user_data);
+
+ gdm_dbus_slave_call_reset_initial_session (display->priv->slave_proxy,
+ cancellable,
+ (GAsyncReadyCallback)
+ on_slave_initial_session_reset,
+ task);
+}
+
+gboolean
+gdm_display_reset_initial_session_finish (GdmDisplay *display,
+ GAsyncResult *result,
+ GError **error)
+{
+ gboolean outcome;
+
+ outcome = g_task_propagate_boolean (G_TASK (result), error);
+ g_object_unref (G_OBJECT (result));
+
+ return outcome;
+}
+
+static void
on_slave_initial_session_stopped (GdmDBusSlave *slave,
GAsyncResult *result,
GTask *task)