summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorRay Strode <rstrode@redhat.com>2018-08-30 16:04:41 -0400
committerRay Strode <rstrode@redhat.com>2018-08-31 16:43:21 -0400
commit80b46e2bbb53842e7c5b568dd0237fb523a021ea (patch)
tree28fe925c222c2e4908dd88895914b2bdcfaddb60
parenta6f5373522acd5f753d330478b605c9812a3e5ae (diff)
downloadgdm-80b46e2bbb53842e7c5b568dd0237fb523a021ea.tar.gz
manager: don't set ran_once after running initial-setup
GdmManager tracks whether or not the user session has ran once, so it won't autologin a user again after logout. Unfortunately the initial-setup session was counting toward the ran_once count preventing initial-setup from logging the user in afterward. This commit prevents ran_once from getting set in that case.
-rw-r--r--daemon/gdm-manager.c4
1 files changed, 3 insertions, 1 deletions
diff --git a/daemon/gdm-manager.c b/daemon/gdm-manager.c
index b42e9b9e..9b684b1f 100644
--- a/daemon/gdm-manager.c
+++ b/daemon/gdm-manager.c
@@ -1484,10 +1484,12 @@ on_display_status_changed (GdmDisplay *display,
char *session_type = NULL;
#ifdef WITH_PLYMOUTH
gboolean display_is_local = FALSE;
+ gboolean doing_initial_setup = FALSE;
gboolean quit_plymouth = FALSE;
g_object_get (display,
"is-local", &display_is_local,
+ "doing-initial-setup", &doing_initial_setup,
NULL);
quit_plymouth = display_is_local && manager->priv->plymouth_is_running;
#endif
@@ -1528,7 +1530,7 @@ on_display_status_changed (GdmDisplay *display,
}
#endif
- if (status == GDM_DISPLAY_FINISHED || g_strcmp0 (session_type, "x11") == 0) {
+ if (!doing_initial_setup && (status == GDM_DISPLAY_FINISHED || g_strcmp0 (session_type, "x11") == 0)) {
manager->priv->ran_once = TRUE;
}
maybe_start_pending_initial_login (manager, display);