From 40121bbe4b6534bf1efb12ea8a9cd56b968af7aa Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Florian=20M=C3=BCllner?= Date: Sat, 20 Feb 2021 13:33:29 +0100 Subject: [PATCH] workspacesView: Center extra workspace At the moment views on non-primary monitors take up the entire work area, so simply allocating the available size works. However we'll soon shrink the views a bit to match the visuals on the primary monitor. As workspaces keep the ratio, reducing their height will also reduce the width; override the default allocate() to keep the extra workspace horizontally centered. Part-of: --- js/ui/workspacesView.js | 12 ++++++++++++ 1 file changed, 12 insertions(+) diff --git a/js/ui/workspacesView.js b/js/ui/workspacesView.js index fb9eafb0a..b65d88724 100644 --- a/js/ui/workspacesView.js +++ b/js/ui/workspacesView.js @@ -560,6 +560,18 @@ class ExtraWorkspaceView extends WorkspacesViewBase { this._workspace.stateAdjustment.value = progress; } + vfunc_allocate(box) { + this.set_allocation(box); + + const [width, height] = box.get_size(); + const [, childWidth] = this._workspace.get_preferred_width(height); + + const childBox = new Clutter.ActorBox(); + childBox.set_origin(Math.round((width - childWidth) / 2), 0); + childBox.set_size(childWidth, height); + this._workspace.allocate(childBox); + } + getActiveWorkspace() { return this._workspace; }