[gdm] daemon: stop slave when user disconnects



commit 390f710bd359ebc7ff807aefce7bf42e1a02ac8c
Author: Ray Strode <rstrode redhat com>
Date:   Thu Feb 3 17:33:02 2011 -0500

    daemon: stop slave when user disconnects
    
    Previously, we would ignore any disconnect
    requests and then the greeter would stick
    around.

 daemon/gdm-simple-slave.c |   21 +++++++++++++++++++++
 1 files changed, 21 insertions(+), 0 deletions(-)
---
diff --git a/daemon/gdm-simple-slave.c b/daemon/gdm-simple-slave.c
index a03ccfc..e6b3c98 100644
--- a/daemon/gdm-simple-slave.c
+++ b/daemon/gdm-simple-slave.c
@@ -958,6 +958,23 @@ on_greeter_connected (GdmGreeterServer *greeter_server,
 }
 
 static void
+on_greeter_disconnected (GdmGreeterServer *greeter_server,
+                         GdmSimpleSlave   *slave)
+{
+        gboolean display_is_local;
+
+        g_debug ("GdmSimpleSlave: Greeter disconnected");
+
+        g_object_get (slave,
+                      "display-is-local", &display_is_local,
+                      NULL);
+
+        if ( ! display_is_local) {
+                gdm_slave_stopped (GDM_SLAVE (slave));
+        }
+}
+
+static void
 on_start_session_when_ready (GdmGreeterServer *session,
                              GdmSimpleSlave   *slave)
 {
@@ -1070,6 +1087,10 @@ start_greeter (GdmSimpleSlave *slave)
                           G_CALLBACK (on_greeter_connected),
                           slave);
         g_signal_connect (slave->priv->greeter_server,
+                          "disconnected",
+                          G_CALLBACK (on_greeter_disconnected),
+                          slave);
+        g_signal_connect (slave->priv->greeter_server,
                           "cancelled",
                           G_CALLBACK (on_greeter_cancel),
                           slave);



[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]