[gdm/rhel-7.9: 13/51] daemon: ensure is-initial bit is transferred to new login screen at logout




commit 8198d45776d84a8efe42d05616afa8c7569552b9
Author: Ray Strode <rstrode redhat com>
Date:   Mon Sep 24 10:53:53 2018 -0400

    daemon: ensure is-initial bit is transferred to new login screen at logout
    
    At the moment, when a user logs out we call sync_seats to restart the
    login screen. sync_seats doesn't know whether or not vt1 is occupied.
    
    This commit changes the code to call the more targeted `create_display`
    function, which we can inform of vt1's availability by the is_initial
    flag.

 daemon/gdm-local-display-factory.c | 8 +++-----
 1 file changed, 3 insertions(+), 5 deletions(-)
---
diff --git a/daemon/gdm-local-display-factory.c b/daemon/gdm-local-display-factory.c
index 12f61bcc7..8b0b2e5c2 100644
--- a/daemon/gdm-local-display-factory.c
+++ b/daemon/gdm-local-display-factory.c
@@ -284,16 +284,14 @@ on_display_status_changed (GdmDisplay             *display,
                 }
                 gdm_display_store_remove (store, display);
 
-                /* if this is a local display, do a full resync.  Only
-                 * seats without displays will get created anyway.  This
-                 * ensures we get a new login screen when the user logs out,
-                 * if there isn't one.
+                /* if this is a local display, recreate the display so
+                 * a new login screen comes up if one is missing.
                  */
                 if (is_local && g_strcmp0 (session_class, "greeter") != 0) {
                         /* reset num failures */
                         factory->priv->num_failures = 0;
 
-                        gdm_local_display_factory_sync_seats (factory);
+                        create_display (factory, seat_id, session_type, is_initial);
                 }
                 break;
         case GDM_DISPLAY_FAILED:


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