[gdm/wip/fix-double-greeters: 4/5] local-display-factory: don't start two greeters at startup



commit 0a79b557addebbb1737fec91a97b03fd8a445a9c
Author: Ray Strode <rstrode redhat com>
Date:   Tue Aug 7 13:55:06 2018 -0400

    local-display-factory: don't start two greeters at startup
    
    commit c0188a7030 added some complex code for starting
    the login screen when the user switches to the initial
    VT if nothing is running on that VT.
    
    The problem is, we get a VT change event on that VT as
    part of the start up process.
    
    This leads to an additional greeter getting started.
    
    This commit adds a check to side step the new code during
    startup.
    
    Closes: https://gitlab.gnome.org/GNOME/gdm/issues/409

 daemon/gdm-local-display-factory.c | 6 ++++++
 1 file changed, 6 insertions(+)
---
diff --git a/daemon/gdm-local-display-factory.c b/daemon/gdm-local-display-factory.c
index 5126683f..d8a4ca08 100644
--- a/daemon/gdm-local-display-factory.c
+++ b/daemon/gdm-local-display-factory.c
@@ -622,6 +622,12 @@ on_vt_changed (GIOChannel    *source,
 
         g_strchomp (tty_of_active_vt);
 
+        /* don't do anything if we're on the same VT we were before */
+        if (g_strcmp0 (tty_of_active_vt, factory->priv->tty_of_active_vt) == 0) {
+                g_debug ("GdmLocalDisplayFactory: VT changed to the same VT, ignoring");
+                return G_SOURCE_CONTINUE;
+        }
+
         tty_of_previous_vt = g_steal_pointer (&factory->priv->tty_of_active_vt);
         factory->priv->tty_of_active_vt = g_steal_pointer (&tty_of_active_vt);
 


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