benzea / rpms / gdm

Forked from rpms/gdm 4 years ago
Clone
f905bcd
From 7e39cace867b328f9e4e03bd62fbae365a8ce72c Mon Sep 17 00:00:00 2001
f905bcd
From: Benjamin Berg <bberg@redhat.com>
f905bcd
Date: Fri, 23 Apr 2021 16:52:24 +0200
f905bcd
Subject: [PATCH] gdm: Fix password auth after secondary service failure
f905bcd
f905bcd
---
f905bcd
 js/gdm/authPrompt.js | 7 ++++---
f905bcd
 js/gdm/util.js       | 6 ++++--
f905bcd
 2 files changed, 8 insertions(+), 5 deletions(-)
f905bcd
f905bcd
diff --git a/js/gdm/authPrompt.js b/js/gdm/authPrompt.js
f905bcd
index d2c9a1659..8bde7673c 100644
f905bcd
--- a/js/gdm/authPrompt.js
f905bcd
+++ b/js/gdm/authPrompt.js
f905bcd
@@ -279,7 +279,9 @@ var AuthPrompt = GObject.registerClass({
f905bcd
     }
f905bcd
 
f905bcd
     _onVerificationFailed(userVerifier, serviceName, canRetry) {
f905bcd
-        const wasQueryingService = this._queryingService === serviceName;
f905bcd
+        if (this._queryingService !== serviceName)
f905bcd
+            return;
f905bcd
+
f905bcd
         this._queryingService = null;
f905bcd
         this.clear();
f905bcd
 
f905bcd
@@ -287,8 +289,7 @@ var AuthPrompt = GObject.registerClass({
f905bcd
         this.setActorInDefaultButtonWell(null);
f905bcd
         this.verificationStatus = AuthPromptStatus.VERIFICATION_FAILED;
f905bcd
 
f905bcd
-        if (wasQueryingService)
f905bcd
-            Util.wiggle(this._entry);
f905bcd
+        Util.wiggle(this._entry);
f905bcd
     }
f905bcd
 
f905bcd
     _onVerificationComplete() {
f905bcd
diff --git a/js/gdm/util.js b/js/gdm/util.js
f905bcd
index 1ee84acde..3536528a3 100644
f905bcd
--- a/js/gdm/util.js
f905bcd
+++ b/js/gdm/util.js
f905bcd
@@ -693,7 +693,9 @@ var ShellUserVerifier = class {
f905bcd
 
f905bcd
         const canRetry = retry && this._canRetry();
f905bcd
 
f905bcd
-        this._disconnectSignals();
f905bcd
+        if (this.serviceIsForeground(serviceName))
f905bcd
+            this._disconnectSignals();
f905bcd
+
f905bcd
         this._filterServiceMessages(serviceName, MessageType.ERROR);
f905bcd
 
f905bcd
         if (canRetry) {
f905bcd
@@ -707,7 +709,7 @@ var ShellUserVerifier = class {
f905bcd
                         this._retry(serviceName);
f905bcd
                 });
f905bcd
             }
f905bcd
-        } else {
f905bcd
+        } else if (this.serviceIsForeground(serviceName)) {
f905bcd
             // eslint-disable-next-line no-lonely-if
f905bcd
             if (!this.hasPendingMessages) {
f905bcd
                 this._cancelAndReset();
f905bcd
-- 
f905bcd
2.30.2
f905bcd