diff options
author | Ray Strode <rstrode@redhat.com> | 2017-03-24 23:40:07 -0400 |
---|---|---|
committer | Ray Strode <rstrode@redhat.com> | 2017-03-25 00:31:37 -0400 |
commit | ff98b2817014684ae1acec78ff06f0f461a56a9f (patch) | |
tree | 4629ae1fda28a85bdd5188f3f4004f9f5045eb83 | |
parent | 9de6b000e376b9d6eeed3b0902da79ca19f29508 (diff) | |
download | gdm-ff98b2817014684ae1acec78ff06f0f461a56a9f.tar.gz |
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
-rw-r--r-- | 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 e78228b4..d4843a6a 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: |