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



commit b30d8c99bd70958b179e0a02be9ee0b4352bb689
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>
    (cherry picked from commit 4871eba8bf51eed1c31b875a81f9d814d7705ac8)

 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 241721ff7c..dc2bb822f2 100644
--- a/js/gdm/loginDialog.js
+++ b/js/gdm/loginDialog.js
@@ -976,8 +976,9 @@ var LoginDialog = GObject.registerClass({
     _gotGreeterSessionProxy(proxy) {
         this._greeterSessionProxy = proxy;
         this._greeterSessionProxyChangedId =
-            proxy.connect('g-properties-changed', () => {
-                if (proxy.Active)
+            proxy.connect('g-properties-changed', (_proxy, properties) => {
+                const activeChanged = !!properties.lookup_value('Active', null);
+                if (activeChanged && proxy.Active)
                     this._loginScreenSessionActivated();
             });
     }


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