Blob Blame History Raw
From 6d26b6f9f66e14843f175305441a2464dd255fd1 Mon Sep 17 00:00:00 2001
From: Ray Strode <rstrode@redhat.com>
Date: Mon, 27 Jul 2020 10:58:49 -0400
Subject: [PATCH] loginDialog: Reset auth prompt on vt switch before fade in

At the moment, if a user switches to the login screen vt,
the login screen fades in whatever was on screen prior, and
then does a reset.

It makes more sense to reset first, so we fade in what the
user is going to interact with instead of what they interacted
with before.

Fixes: https://gitlab.gnome.org/GNOME/gnome-shell/-/issues/2997
---
 js/gdm/loginDialog.js | 10 ++++------
 1 file changed, 4 insertions(+), 6 deletions(-)

diff --git a/js/gdm/loginDialog.js b/js/gdm/loginDialog.js
index 214c2f512..eb6846d5c 100644
--- a/js/gdm/loginDialog.js
+++ b/js/gdm/loginDialog.js
@@ -923,6 +923,9 @@ var LoginDialog = GObject.registerClass({
         if (this.opacity == 255 && this._authPrompt.verificationStatus == AuthPrompt.AuthPromptStatus.NOT_VERIFYING)
             return;
 
+        if (this._authPrompt.verificationStatus != AuthPrompt.AuthPromptStatus.NOT_VERIFYING)
+            this._authPrompt.reset();
+
         Tweener.addTween(this,
                          { opacity: 255,
                            time: _FADE_ANIMATION_TIME,
@@ -935,12 +938,7 @@ var LoginDialog = GObject.registerClass({
                                        children[i].opacity = this.opacity;
                                }
                            },
-                           onUpdateScope: this,
-                           onComplete() {
-                               if (this._authPrompt.verificationStatus != AuthPrompt.AuthPromptStatus.NOT_VERIFYING)
-                                   this._authPrompt.reset();
-                           },
-                           onCompleteScope: this });
+                           onUpdateScope: this });
     }
 
     _gotGreeterSessionProxy(proxy) {
-- 
2.32.0