]> rtime.felk.cvut.cz Git - sojka/lightdm.git/blobdiff - src/greeter.c
Load all users only when really needed
[sojka/lightdm.git] / src / greeter.c
index b81bb2161720b924b229b4dd2c2518d3767e2417..1ec5bd9c008848455efc29f011c8aedd60784ee3 100644 (file)
@@ -19,8 +19,7 @@
 #include "shared-data-manager.h"
 
 enum {
-    PROP_0,
-    PROP_ACTIVE_USERNAME,
+    PROP_ACTIVE_USERNAME = 1,
 };
 
 enum {
@@ -968,10 +967,18 @@ greeter_get_guest_authenticated (Greeter *greeter)
 }
 
 Session *
-greeter_get_authentication_session (Greeter *greeter)
+greeter_take_authentication_session (Greeter *greeter)
 {
+    Session *session;
+
     g_return_val_if_fail (greeter != NULL, NULL);
-    return greeter->priv->authentication_session;
+
+    session = greeter->priv->authentication_session;
+    if (greeter->priv->authentication_session)
+        g_signal_handlers_disconnect_matched (greeter->priv->authentication_session, G_SIGNAL_MATCH_DATA, 0, 0, NULL, NULL, greeter);
+    greeter->priv->authentication_session = NULL;
+
+    return session;
 }
 
 gboolean