From 01d8d4871e80e86f87aeac281513c19c0a69e962 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Florian=20M=C3=BCllner?= Date: Thu, 29 May 2025 14:53:37 +0200 Subject: [PATCH] workspace-indicator: Expose active workspace name on menu When not using previews, we currently use a numerical presentation like "1 / 4" for the top bar button. We will change that to use the active workspace name instead. As the menu already has to track workspace switches and name changes, expose the active workspace name there, so that the button doesn't have to duplicate the tracking. Part-of: --- .../workspace-indicator/workspaceIndicator.js | 13 +++++++++++-- 1 file changed, 11 insertions(+), 2 deletions(-) diff --git a/extensions/workspace-indicator/workspaceIndicator.js b/extensions/workspace-indicator/workspaceIndicator.js index 10975ede..d24310de 100644 --- a/extensions/workspace-indicator/workspaceIndicator.js +++ b/extensions/workspace-indicator/workspaceIndicator.js @@ -404,8 +404,10 @@ class WorkspacesMenu extends PopupMenu.PopupMenu { this._desktopSettings = new Gio.Settings({schema_id: 'org.gnome.desktop.wm.preferences'}); - this._desktopSettings.connectObject('changed::workspace-names', - () => this._updateWorkspaceLabels(), this); + this._desktopSettings.connectObject('changed::workspace-names', () => { + this._updateWorkspaceLabels(); + this.emit('active-name-changed'); + }, this); const {workspaceManager} = global; workspaceManager.connectObject( @@ -415,6 +417,12 @@ class WorkspacesMenu extends PopupMenu.PopupMenu { this._updateWorkspaceItems(); } + get activeName() { + const {workspaceManager} = global; + const active = workspaceManager.get_active_workspace_index(); + return Meta.prefs_get_workspace_name(active); + } + _updateWorkspaceItems() { const {workspaceManager} = global; const {nWorkspaces} = workspaceManager; @@ -452,6 +460,7 @@ class WorkspacesMenu extends PopupMenu.PopupMenu { ? PopupMenu.Ornament.CHECK : PopupMenu.Ornament.NONE); }); + this.emit('active-name-changed'); } }