[gnome-shell] workspacesView: Center extra workspace



commit 40121bbe4b6534bf1efb12ea8a9cd56b968af7aa
Author: Florian Müllner <fmuellner gnome org>
Date:   Sat Feb 20 13:33:29 2021 +0100

    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: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/1735>

 js/ui/workspacesView.js | 12 ++++++++++++
 1 file changed, 12 insertions(+)
---
diff --git a/js/ui/workspacesView.js b/js/ui/workspacesView.js
index fb9eafb0a8..b65d887245 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;
     }


[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]