[gnome-shell/benzea/systemd-user-units-with-extension-warning: 3/6] extensionPrefs: Always allow user to enable/disable extensions



commit d9558c700c1e5e5a01208bf42f3708c73e91265b
Author: Benjamin Berg <bberg redhat com>
Date:   Thu Aug 1 16:48:56 2019 +0200

    extensionPrefs: Always allow user to enable/disable extensions
    
    To do this, simply use the new isRequested property to properly reflect
    the underlying settings key rather than the actual loaded state of the
    extension.
    
    https://gitlab.gnome.org/GNOME/gnome-shell/merge_requests/695

 js/extensionPrefs/main.js | 9 ++++++++-
 1 file changed, 8 insertions(+), 1 deletion(-)
---
diff --git a/js/extensionPrefs/main.js b/js/extensionPrefs/main.js
index 54900cefcb..606f9ecd45 100644
--- a/js/extensionPrefs/main.js
+++ b/js/extensionPrefs/main.js
@@ -605,8 +605,11 @@ class ExtensionRow extends Gtk.ListBoxRow {
 
                 this._extension = ExtensionUtils.deserializeExtension(newState);
                 let state = (this._extension.state == ExtensionState.ENABLED);
+                this._switch.freeze_notify();
                 this._switch.state = state;
+                this._switch.active = this._extension.isRequested;
                 this._switch.sensitive = this._canToggle();
+                this._switch.thaw_notify();
             });
 
         this.connect('destroy', this._onDestroy.bind(this));
@@ -675,7 +678,6 @@ class ExtensionRow extends Gtk.ListBoxRow {
         this._switch = new Gtk.Switch({
             valign: Gtk.Align.CENTER,
             sensitive: this._canToggle(),
-            state: this._extension.state === ExtensionState.ENABLED
         });
         this._switch.connect('notify::active', () => {
             if (this._switch.active)
@@ -684,6 +686,11 @@ class ExtensionRow extends Gtk.ListBoxRow {
                 this._app.shellProxy.DisableExtensionRemote(this.uuid);
         });
         this._switch.connect('state-set', () => true);
+        this._switch.freeze_notify();
+        this._switch.state = this._extension.state === ExtensionState.ENABLED;
+        this._switch.active = this._extension.isRequested;
+        this._switch.thaw_notify();
+
         hbox.add(this._switch);
     }
 


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