]> rtime.felk.cvut.cz Git - sojka/lightdm.git/blobdiff - src/seat.c
Fix greeter being killing a started session once if a new authentication is started
[sojka/lightdm.git] / src / seat.c
index 8f1053ea3ff183eda6f15c87d83fc6bcbe8518ed..8d53f875c6f7759c668c396a4360d9cea6bddf7f 100644 (file)
@@ -1177,7 +1177,7 @@ greeter_start_session_cb (Greeter *greeter, SessionType type, const gchar *sessi
     /* Get the session to use */
     if (greeter_get_guest_authenticated (greeter))
     {
-        session = create_guest_session (seat, session_name);
+        session = g_object_ref (create_guest_session (seat, session_name));
         if (!session)
             return FALSE;
         session_set_pam_service (session, seat_get_string_property (seat, "pam-autologin-service"));
@@ -1190,7 +1190,7 @@ greeter_start_session_cb (Greeter *greeter, SessionType type, const gchar *sessi
         gchar *sessions_dir = NULL;
         gchar **argv;
 
-        session = greeter_get_authentication_session (greeter);
+        session = greeter_take_authentication_session (greeter);
 
         /* Get session command to run */
         switch (type)
@@ -1234,7 +1234,7 @@ greeter_start_session_cb (Greeter *greeter, SessionType type, const gchar *sessi
 
     /* Switch to this session when it is ready */
     g_clear_object (&seat->priv->session_to_activate);
-    seat->priv->session_to_activate = g_object_ref (session);
+    seat->priv->session_to_activate = session;
 
     /* Return to existing session if it is open */
     username = session_get_username (session);