[gnome-shell-extensions/wip/rstrode/heads-up-display: 49/62] window-list: Invalid current mode selected in Preferences




commit d92fd2b3e8aec83a4a9108772491a1af79b78743
Author: Milan Crha <mcrha redhat com>
Date:   Fri Apr 17 09:21:42 2020 +0200

    window-list: Invalid current mode selected in Preferences
    
    It seems that gtk+ resets the active radio whenever a new radio button
    is added into the group, thus rather restore the current mode after
    the group is fully populated.
    
    https://gitlab.gnome.org/GNOME/gnome-shell-extensions/-/merge_requests/119

 extensions/window-list/prefs.js | 9 ++++++++-
 1 file changed, 8 insertions(+), 1 deletion(-)
---
diff --git a/extensions/window-list/prefs.js b/extensions/window-list/prefs.js
index 78792b5..17e9799 100644
--- a/extensions/window-list/prefs.js
+++ b/extensions/window-list/prefs.js
@@ -50,6 +50,7 @@ class WindowListPrefsWidget extends Gtk.Grid {
         };
 
         let radio = null;
+        let currentRadio = null;
         for (let i = 0; i < modes.length; i++) {
             let mode = modes[i];
             let label = modeLabels[mode];
@@ -59,18 +60,24 @@ class WindowListPrefsWidget extends Gtk.Grid {
             }
 
             radio = new Gtk.RadioButton({
-                active: currentMode == mode,
+                active: !i,
                 label: label,
                 group: radio
             });
             grid.add(radio);
 
+            if (currentMode === mode)
+                currentRadio = radio;
+
             radio.connect('toggled', button => {
                 if (button.active)
                     this._settings.set_string('grouping-mode', mode);
             });
         }
 
+        if (currentRadio)
+            currentRadio.active = true;
+
         let check = new Gtk.CheckButton({
             label: _('Show on all monitors'),
             margin_top: 6


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