From 3f21c21532db75d374c1d3b42c66ba8592f83813 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jonas=20Dre=C3=9Fler?= Date: Mon, 9 Dec 2019 19:16:41 +0100 Subject: [PATCH] status/system: Update text of orientation lock menu entry Since the orientation lock menu entry is a proper menu entry instead of a icon-only button now, we also show a description-text for that entry, so update this text depending on whether orientation is locked or not to better reflect what clicking the menu entry will do. https://gitlab.gnome.org/GNOME/gnome-shell/merge_requests/964 --- js/misc/systemActions.js | 29 ++++++++++++++++++----------- js/ui/status/system.js | 7 ++++++- 2 files changed, 24 insertions(+), 12 deletions(-) diff --git a/js/misc/systemActions.js b/js/misc/systemActions.js index 07e1880b3..4442a5b71 100644 --- a/js/misc/systemActions.js +++ b/js/misc/systemActions.js @@ -125,11 +125,10 @@ const SystemActions = GObject.registerClass({ available: false, }); this._actions.set(LOCK_ORIENTATION_ACTION_ID, { - // Translators: The name of the lock orientation action in search - name: C_("search-result", "Lock Orientation"), + name: '', iconName: '', // Translators: A list of keywords that match the lock orientation action, separated by semicolons - keywords: _("lock orientation;screen;rotation").split(/[; ]/), + keywords: _("lock orientation;unlock orientation;screen;rotation").split(/[; ]/), available: false, }); @@ -167,11 +166,10 @@ const SystemActions = GObject.registerClass({ this.forceUpdate(); - this._orientationSettings.connect('changed::orientation-lock', - () => { - this._updateOrientationLock(); - this._updateOrientationLockIcon(); - }); + this._orientationSettings.connect('changed::orientation-lock', () => { + this._updateOrientationLock(); + this._updateOrientationLockStatus(); + }); Main.layoutManager.connect('monitors-changed', () => this._updateOrientationLock()); this._sensorProxy = new SensorProxy(Gio.DBus.system, @@ -190,7 +188,7 @@ const SystemActions = GObject.registerClass({ this._updateOrientationLock(); }); this._updateOrientationLock(); - this._updateOrientationLockIcon(); + this._updateOrientationLockStatus(); Main.sessionMode.connect('updated', () => this._sessionUpdated()); this._sessionUpdated(); @@ -243,12 +241,21 @@ const SystemActions = GObject.registerClass({ this.notify('can-lock-orientation'); } - _updateOrientationLockIcon() { + _updateOrientationLockStatus() { let locked = this._orientationSettings.get_boolean('orientation-lock'); + let action = this._actions.get(LOCK_ORIENTATION_ACTION_ID); + + // Translators: The name of the lock orientation action in search + // and in the system status menu + let name = locked + ? C_('search-result', 'Unlock Screen Rotation') + : C_('search-result', 'Lock Screen Rotation'); let iconName = locked ? 'rotation-locked-symbolic' : 'rotation-allowed-symbolic'; - this._actions.get(LOCK_ORIENTATION_ACTION_ID).iconName = iconName; + + action.name = name; + action.iconName = iconName; this.notify('orientation-lock-icon'); } diff --git a/js/ui/status/system.js b/js/ui/status/system.js index 1353422dd..195e9a1c8 100644 --- a/js/ui/status/system.js +++ b/js/ui/status/system.js @@ -54,8 +54,10 @@ class Indicator extends PanelMenu.SystemIndicator { let bindFlags = GObject.BindingFlags.DEFAULT | GObject.BindingFlags.SYNC_CREATE; let item; - item = new PopupMenu.PopupImageMenuItem(_('Lock Screen Rotation'), + item = new PopupMenu.PopupImageMenuItem( + this._systemActions.getName('lock-orientation'), this._systemActions.orientation_lock_icon); + item.connect('activate', () => { this.menu.itemActivated(BoxPointer.PopupAnimation.NONE); this._systemActions.activateLockOrientation(); @@ -68,7 +70,10 @@ class Indicator extends PanelMenu.SystemIndicator { bindFlags); this._systemActions.connect('notify::orientation-lock-icon', () => { let iconName = this._systemActions.orientation_lock_icon; + let labelText = this._systemActions.getName("lock-orientation"); + this._orientationLockItem.setIcon(iconName); + this._orientationLockItem.label.text = labelText; }); let app = this._settingsApp = Shell.AppSystem.get_default().lookup_app(