[gdm] manager: if falling back to X11 retry autologin



commit ff98b2817014684ae1acec78ff06f0f461a56a9f
Author: Ray Strode <rstrode redhat com>
Date:   Fri Mar 24 23:40:07 2017 -0400

    manager: if falling back to X11 retry autologin
    
    Right now, we get one shot to autologin. If it fails, we fall back to
    the greeter.  We should give it another go if the reason for the failure
    was wayland fallback to X.
    
    https://bugzilla.gnome.org/show_bug.cgi?id=780520

 daemon/gdm-manager.c |   11 ++++++++---
 1 files changed, 8 insertions(+), 3 deletions(-)
---
diff --git a/daemon/gdm-manager.c b/daemon/gdm-manager.c
index e78228b..d4843a6 100644
--- a/daemon/gdm-manager.c
+++ b/daemon/gdm-manager.c
@@ -1446,8 +1446,6 @@ greeter_display_started (GdmManager *manager,
         }
 
         maybe_start_pending_initial_login (manager, display);
-
-        manager->priv->ran_once = TRUE;
 }
 
 static void
@@ -1457,6 +1455,7 @@ on_display_status_changed (GdmDisplay *display,
 {
         int         status;
         int         display_number = -1;
+        char       *session_type = NULL;
 #ifdef WITH_PLYMOUTH
         gboolean    display_is_local = FALSE;
         gboolean    quit_plymouth = FALSE;
@@ -1467,7 +1466,10 @@ on_display_status_changed (GdmDisplay *display,
         quit_plymouth = display_is_local && manager->priv->plymouth_is_running;
 #endif
 
-        g_object_get (display, "x11-display-number", &display_number, NULL);
+        g_object_get (display,
+                      "x11-display-number", &display_number,
+                      "session-type", &session_type,
+                      NULL);
 
         status = gdm_display_get_status (display);
 
@@ -1500,6 +1502,9 @@ on_display_status_changed (GdmDisplay *display,
                         }
 #endif
 
+                        if (status == GDM_DISPLAY_FINISHED || g_strcmp0 (session_type, "x11") == 0) {
+                                manager->priv->ran_once = TRUE;
+                        }
                         maybe_start_pending_initial_login (manager, display);
                         break;
                 default:


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