From c9678e89d2cc3c2a1ee087d9ce815ab942b47486 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Florian=20M=C3=BCllner?= Date: Thu, 22 May 2025 16:27:57 +0200 Subject: [PATCH] workspace-indicator: Split out WorkspacesMenu The menu currently only contains the previews without any logic on its own. This is about to change, so split the menu into a separate class. Part-of: --- .../workspace-indicator/workspaceIndicator.js | 21 ++++++++++--------- 1 file changed, 11 insertions(+), 10 deletions(-) diff --git a/extensions/workspace-indicator/workspaceIndicator.js b/extensions/workspace-indicator/workspaceIndicator.js index e8b0fdbd..a1601d90 100644 --- a/extensions/workspace-indicator/workspaceIndicator.js +++ b/extensions/workspace-indicator/workspaceIndicator.js @@ -421,6 +421,16 @@ class WorkspacePreviews extends Clutter.Actor { } } +class WorkspacesMenu extends PopupMenu.PopupMenu { + constructor(sourceActor) { + super(sourceActor, 0.5, St.Side.TOP); + + const previews = new WorkspacePreviews({show_labels: true}); + this.box.add_child(previews); + this.actor.add_style_class_name(`${baseStyleClassName}-menu`); + } +} + export class WorkspaceIndicator extends PanelMenu.Button { static { GObject.registerClass(this); @@ -496,7 +506,7 @@ export class WorkspaceIndicator extends PanelMenu.Button { this._thumbnails.visible = !useMenu; this.setMenu(useMenu - ? this._createPreviewMenu() + ? new WorkspacesMenu(this) : null); this._updateTopBarRedirect(); @@ -523,13 +533,4 @@ export class WorkspaceIndicator extends PanelMenu.Button { const current = this._currentWorkspace + 1; return `${current} / ${nWorkspaces}`; } - - _createPreviewMenu() { - const menu = new PopupMenu.PopupMenu(this, 0.5, St.Side.TOP); - - const previews = new WorkspacePreviews({show_labels: true}); - menu.box.add_child(previews); - menu.actor.add_style_class_name(`${baseStyleClassName}-menu`); - return menu; - } }