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



commit 90ee81abf73c5ca6d0942de913bcee4010c8780f
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 bead5c8e3e..a50b327406 100644
--- a/js/gdm/loginDialog.js
+++ b/js/gdm/loginDialog.js
@@ -985,8 +985,9 @@ var LoginDialog = GObject.registerClass({
 
     _gotGreeterSessionProxy(proxy) {
         this._greeterSessionProxy = proxy;
-        proxy.connectObject('g-properties-changed', () => {
-            if (proxy.Active)
+        proxy.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]