[gnome-shell/wip/timed-login-fix: 2/4] loginDialog: disconnect greeter when switching away VTs



commit d2b0eaa2463d249a19502f11bdcc2d9d8a323989
Author: Ray Strode <rstrode redhat com>
Date:   Wed Feb 6 15:59:31 2019 -0500

    loginDialog: disconnect greeter when switching away VTs
    
    At the moment the greeter stays connected to GDM even after the
    user logs in.  That stale connection can lead to bookkeeping
    confusion later on.
    
    This commit makes sure we disconnect the greeter connection any
    time the user logs in or otherwise switches VTs.
    
    This commit also make sure we do a full reset when VT switching
    back later, so the greeter connection can get re-setup.

 js/gdm/loginDialog.js | 15 ++++++++++-----
 1 file changed, 10 insertions(+), 5 deletions(-)
---
diff --git a/js/gdm/loginDialog.js b/js/gdm/loginDialog.js
index 31483fe7d..682448ca6 100644
--- a/js/gdm/loginDialog.js
+++ b/js/gdm/loginDialog.js
@@ -920,9 +920,6 @@ var LoginDialog = new Lang.Class({
     },
 
     _loginScreenSessionActivated() {
-        if (this.actor.opacity == 255 && this._authPrompt.verificationStatus == 
AuthPrompt.AuthPromptStatus.NOT_VERIFYING)
-            return;
-
         Tweener.addTween(this.actor,
                          { opacity: 255,
                            time: _FADE_ANIMATION_TIME,
@@ -937,12 +934,18 @@ var LoginDialog = new Lang.Class({
                            },
                            onUpdateScope: this,
                            onComplete() {
-                               if (this._authPrompt.verificationStatus != 
AuthPrompt.AuthPromptStatus.NOT_VERIFYING)
-                                   this._authPrompt.reset();
+                               this._authPrompt.reset();
                            },
                            onCompleteScope: this });
     },
 
+    _loginScreenSessionDeactivated() {
+        if (this._greeter) {
+            this._greeter.run_dispose();
+            this._greeter = null;
+        }
+    },
+
     _gotGreeterSessionProxy(proxy) {
         this._greeterSessionProxy = proxy;
         this._greeterSessionProxyChangedId =
@@ -952,6 +955,8 @@ var LoginDialog = new Lang.Class({
 
                 if (proxy.Active)
                     this._loginScreenSessionActivated();
+                else
+                    this._loginScreenSessionDeactivated();
             });
     },
 


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