diff options
author | Ray Strode <rstrode@redhat.com> | 2018-08-31 14:33:58 -0400 |
---|---|---|
committer | Ray Strode <rstrode@redhat.com> | 2018-08-31 16:43:21 -0400 |
commit | 2f3065ca0d73984f1317b0a1af431ca3d9252c7b (patch) | |
tree | 60d24e9345c46ada8e129d3c43bd7d9b5c2369ea /daemon | |
parent | 80b46e2bbb53842e7c5b568dd0237fb523a021ea (diff) | |
download | gdm-2f3065ca0d73984f1317b0a1af431ca3d9252c7b.tar.gz |
manager: start initial setup right away
We no longer restart the greeter as soon as it dies, since we
start the greeter on demand. This means, we no longer need to
defer starting initial setup until after the greeter respawns.
Furthermore, it doesn't work anymore since it relied on the
respawn to trigger.
This commit removes that code and scaffolding and just starts
initial setup directly.
https://gitlab.gnome.org/GNOME/gdm/issues/415
Diffstat (limited to 'daemon')
-rw-r--r-- | daemon/gdm-manager.c | 67 |
1 files changed, 1 insertions, 66 deletions
diff --git a/daemon/gdm-manager.c b/daemon/gdm-manager.c index 9b684b1f..b1e2072c 100644 --- a/daemon/gdm-manager.c +++ b/daemon/gdm-manager.c @@ -89,8 +89,6 @@ struct GdmManagerPrivate GDBusConnection *connection; GDBusObjectManagerServer *object_manager; - StartUserSessionOperation *initial_login_operation; - #ifdef WITH_PLYMOUTH guint plymouth_is_running : 1; #endif @@ -1251,42 +1249,6 @@ get_automatic_login_details (GdmManager *manager, return enabled; } -static void -maybe_start_pending_initial_login (GdmManager *manager, - GdmDisplay *greeter_display) -{ - StartUserSessionOperation *operation; - char *greeter_seat_id = NULL; - char *user_session_seat_id = NULL; - - /* There may be a user session waiting to be started. - * This would happen if we couldn't start it earlier because - * the login screen X server was coming up and two X servers - * can't be started on the same seat at the same time. - */ - - if (manager->priv->initial_login_operation == NULL) { - return; - } - - operation = manager->priv->initial_login_operation; - - g_object_get (G_OBJECT (greeter_display), - "seat-id", &greeter_seat_id, - NULL); - g_object_get (G_OBJECT (operation->session), - "display-seat-id", &user_session_seat_id, - NULL); - - if (g_strcmp0 (greeter_seat_id, user_session_seat_id) == 0) { - start_user_session (manager, operation); - manager->priv->initial_login_operation = NULL; - } - - g_free (greeter_seat_id); - g_free (user_session_seat_id); -} - static const char * get_username_for_greeter_display (GdmManager *manager, GdmDisplay *display) @@ -1464,17 +1426,6 @@ set_up_session (GdmManager *manager, } static void -greeter_display_started (GdmManager *manager, - GdmDisplay *display) -{ - if (manager->priv->ran_once) { - return; - } - - maybe_start_pending_initial_login (manager, display); -} - -static void on_display_status_changed (GdmDisplay *display, GParamSpec *arg1, GdmManager *manager) @@ -1515,10 +1466,6 @@ on_display_status_changed (GdmDisplay *display, set_up_session (manager, display); g_free (session_class); } - - if (status == GDM_DISPLAY_MANAGED) { - greeter_display_started (manager, display); - } break; case GDM_DISPLAY_FAILED: case GDM_DISPLAY_UNMANAGED: @@ -1533,7 +1480,6 @@ on_display_status_changed (GdmDisplay *display, 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); break; default: break; @@ -1640,7 +1586,6 @@ on_start_user_session (StartUserSessionOperation *operation) gboolean migrated; gboolean fail_if_already_switched = TRUE; gboolean doing_initial_setup = FALSE; - gboolean starting_user_session_right_away = TRUE; GdmDisplay *display; const char *session_id; @@ -1688,14 +1633,6 @@ on_start_user_session (StartUserSessionOperation *operation) gdm_display_stop_greeter_session (display); gdm_display_unmanage (display); gdm_display_finish (display); - - /* We can't start the user session until the finished display - * starts to respawn (since starting an X server and bringing - * one down at the same time is a no go) - */ - g_assert (self->priv->initial_login_operation == NULL); - self->priv->initial_login_operation = operation; - starting_user_session_right_away = FALSE; } else { g_debug ("GdmManager: session has its display server, reusing our server for another login screen"); } @@ -1721,9 +1658,7 @@ on_start_user_session (StartUserSessionOperation *operation) session_id); } - if (starting_user_session_right_away) { - start_user_session (operation->manager, operation); - } + start_user_session (operation->manager, operation); out: return G_SOURCE_REMOVE; |