summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorRay Strode <rstrode@redhat.com>2017-03-24 23:40:07 -0400
committerRay Strode <rstrode@redhat.com>2017-03-25 00:31:37 -0400
commitff98b2817014684ae1acec78ff06f0f461a56a9f (patch)
tree4629ae1fda28a85bdd5188f3f4004f9f5045eb83
parent9de6b000e376b9d6eeed3b0902da79ca19f29508 (diff)
downloadgdm-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.c11
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: