workspacesView: Simplify syncing actual geometry
We adjust the size and position of the primary view to match the workspaces display, but views on other monitors are always set to fill their monitor. Take that into account and create views with a fixed size and position, then only sync the primary view to the new geometry. https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/1345
This commit is contained in:
parent
75f8903c7e
commit
51fd0875d1
@ -21,7 +21,13 @@ var WorkspacesViewBase = GObject.registerClass({
|
||||
GTypeFlags: GObject.TypeFlags.ABSTRACT,
|
||||
}, class WorkspacesViewBase extends St.Widget {
|
||||
_init(monitorIndex) {
|
||||
super._init({ style_class: 'workspaces-view' });
|
||||
const { x, y, width, height } =
|
||||
Main.layoutManager.monitors[monitorIndex];
|
||||
|
||||
super._init({
|
||||
style_class: 'workspaces-view',
|
||||
x, y, width, height,
|
||||
});
|
||||
this.connect('destroy', this._onDestroy.bind(this));
|
||||
global.focus_manager.add_group(this);
|
||||
|
||||
@ -747,16 +753,11 @@ class WorkspacesDisplay extends St.Widget {
|
||||
}
|
||||
|
||||
_syncWorkspacesActualGeometry() {
|
||||
if (!this._workspacesViews.length)
|
||||
const primaryView = this._getPrimaryView();
|
||||
if (!primaryView)
|
||||
return;
|
||||
|
||||
let monitors = Main.layoutManager.monitors;
|
||||
for (let i = 0; i < monitors.length; i++) {
|
||||
let geometry = i === this._primaryIndex ? this._actualGeometry : monitors[i];
|
||||
const { x, y, width, height } = geometry;
|
||||
|
||||
this._workspacesViews[i].set({ x, y, width, height });
|
||||
}
|
||||
primaryView.set(this._actualGeometry);
|
||||
}
|
||||
|
||||
_onRestacked(overview, stackIndices) {
|
||||
|
Loading…
Reference in New Issue
Block a user