[gnome-shell] loginDialog: Don't call _loginScreenSessionActivated() when not required



commit 4871eba8bf51eed1c31b875a81f9d814d7705ac8
Author: Alessandro Bono <alessandro bono369 gmail com>
Date:   Mon Aug 8 13:33:53 2022 +0200

    loginDialog: Don't call _loginScreenSessionActivated() when not required
    
    We are calling _loginScreenSessionActivated() even in cases where this is
    not required. For example, there are cases where the Active property is
    already `true` and properties like `IdleHint`, `IdleSinceHint` and
    `IdleSinceHintMonotonic` change. In this cases _loginScreenSessionActivated()
    is called and will reset the authPrompt when not necessary.
    
    Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/2411>

 js/gdm/loginDialog.js | 5 +++--
 1 file changed, 3 insertions(+), 2 deletions(-)
---
diff --git a/js/gdm/loginDialog.js b/js/gdm/loginDialog.js
index bd1a6591a1..6071936770 100644
--- a/js/gdm/loginDialog.js
+++ b/js/gdm/loginDialog.js
@@ -985,8 +985,9 @@ var LoginDialog = GObject.registerClass({
     async _getGreeterSessionProxy() {
         const loginManager = LoginManager.getLoginManager();
         this._greeterSessionProxy = await loginManager.getCurrentSessionProxy();
-        this._greeterSessionProxy?.connectObject('g-properties-changed', () => {
-            if (this._greeterSessionProxy.Active)
+        this._greeterSessionProxy?.connectObject('g-properties-changed', (proxy, properties) => {
+            const activeChanged = !!properties.lookup_value('Active', null);
+            if (activeChanged && proxy.Active)
                 this._loginScreenSessionActivated();
         }, this);
     }


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