From 63a0e521fd37fe5f19ac29a540fa00b03db7036c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jonas=20Dre=C3=9Fler?= Date: Tue, 10 Mar 2020 11:05:13 +0100 Subject: [PATCH] boxpointer: Call set_allocation before allocating child It's important to update the allocation of the parent before allocating its children, it's an assumption we make in a lot of places. This broke resource scale calculation for boxpointers and their children when multiple monitors with different scales are used and the primary monitor is not positioned at x=0, y=0. https://gitlab.gnome.org/GNOME/gnome-shell/-/issues/1615 --- js/ui/boxpointer.js | 11 +++++------ 1 file changed, 5 insertions(+), 6 deletions(-) diff --git a/js/ui/boxpointer.js b/js/ui/boxpointer.js index 03cb4a567..60540621d 100644 --- a/js/ui/boxpointer.js +++ b/js/ui/boxpointer.js @@ -197,6 +197,11 @@ var BoxPointer = GObject.registerClass({ } vfunc_allocate(box, flags) { + if (this._sourceActor && this._sourceActor.mapped) { + this._reposition(box); + this._updateFlip(box); + } + this.set_allocation(box, flags); let themeNode = this.get_theme_node(); @@ -230,12 +235,6 @@ var BoxPointer = GObject.registerClass({ break; } this.bin.allocate(childBox, flags); - - if (this._sourceActor && this._sourceActor.mapped) { - this._reposition(box); - this._updateFlip(box); - this.set_allocation(box, flags); - } } _drawBorder(area) {