workspace: Use actual container allocation

We currently assume that the passed in Clutter.ActorBox matches
the container allocation, but in reality it is the container's
content area.

https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/1345
This commit is contained in:
Florian Müllner 2020-06-26 03:22:29 +02:00
parent 124eb1ca18
commit 75f8903c7e

View File

@ -560,9 +560,10 @@ var WorkspaceLayout = GObject.registerClass({
}
vfunc_allocate(container, box) {
const containerBox = container.allocation;
const containerAllocationChanged =
this._lastBox === null || !this._lastBox.equal(box);
this._lastBox = box.copy();
this._lastBox === null || !this._lastBox.equal(containerBox);
this._lastBox = containerBox.copy();
// If the containers size changed, we can no longer keep around
// the old windowSlots, so we must unfreeze the layout
@ -582,7 +583,7 @@ var WorkspaceLayout = GObject.registerClass({
this._windowSlots = this._getWindowSlots(box.copy());
}
const allocationScale = box.get_width() / this._workarea.width;
const allocationScale = containerBox.get_width() / this._workarea.width;
const workspaceBox = new Clutter.ActorBox();
const layoutBox = new Clutter.ActorBox();