From 3d87782a589e2fecd892f26f6fa7568dfb5b2108 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Florian=20M=C3=BCllner?= Date: Wed, 18 Dec 2024 18:12:29 +0100 Subject: [PATCH] status/a11y: Simplify "Large Text" toggle It is the last user of `_buildItemExtended()`, so merge it with `_buildFontItem()`. Part-of: --- js/ui/status/accessibility.js | 38 ++++++++++++----------------------- 1 file changed, 13 insertions(+), 25 deletions(-) diff --git a/js/ui/status/accessibility.js b/js/ui/status/accessibility.js index 5e6c447f3..44c9dc9f9 100644 --- a/js/ui/status/accessibility.js +++ b/js/ui/status/accessibility.js @@ -105,18 +105,6 @@ class ATIndicator extends PanelMenu.Button { GLib.Source.set_name_by_id(this._syncMenuVisibilityIdle, '[gnome-shell] this._syncMenuVisibility'); } - _buildItemExtended(string, initialValue, writable, onSet) { - let widget = new PopupMenu.PopupSwitchMenuItem(string, initialValue); - if (!writable) { - widget.reactive = false; - } else { - widget.connect('toggled', item => { - onSet(item.state); - }); - } - return widget; - } - _buildItem(string, schema, key) { const settings = new Gio.Settings({schema_id: schema}); const widget = new PopupMenu.PopupSwitchMenuItem(string, false); @@ -129,20 +117,17 @@ class ATIndicator extends PanelMenu.Button { } _buildFontItem() { - let settings = new Gio.Settings({schema_id: DESKTOP_INTERFACE_SCHEMA}); + const settings = new Gio.Settings({schema_id: DESKTOP_INTERFACE_SCHEMA}); let factor = settings.get_double(KEY_TEXT_SCALING_FACTOR); - let initialSetting = factor > 1.0; - let widget = this._buildItemExtended(_('Large Text'), - initialSetting, - settings.is_writable(KEY_TEXT_SCALING_FACTOR), - enabled => { - if (enabled) { - settings.set_double( - KEY_TEXT_SCALING_FACTOR, DPI_FACTOR_LARGE); - } else { - settings.reset(KEY_TEXT_SCALING_FACTOR); - } - }); + const widget = + new PopupMenu.PopupSwitchMenuItem(_('Large Text'), factor > 1.0); + + widget.connect('toggled', item => { + if (item.state) + settings.set_double(KEY_TEXT_SCALING_FACTOR, DPI_FACTOR_LARGE); + else + settings.reset(KEY_TEXT_SCALING_FACTOR); + }); settings.connect(`changed::${KEY_TEXT_SCALING_FACTOR}`, () => { factor = settings.get_double(KEY_TEXT_SCALING_FACTOR); @@ -151,6 +136,9 @@ class ATIndicator extends PanelMenu.Button { this._queueSyncMenuVisibility(); }); + settings.bind_writable(KEY_TEXT_SCALING_FACTOR, + widget, 'sensitive', + false); return widget; }