From 0fd205ce54ccae0129cb2f3a4f8f92d842fe0d51 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Florian=20M=C3=BCllner?= Date: Wed, 1 Sep 2021 20:37:13 +0200 Subject: [PATCH] boxpointer: Fix positioning with non-widget sources Commit 16d371873 lifted the requirement for source actors to be widgets, then got it wrong :rolling_eyes: The content box is expected to be in actor coordinates, so the allocation must be translated to (0, 0). https://gitlab.gnome.org/GNOME/gnome-shell/-/issues/4593 Part-of: --- js/ui/boxpointer.js | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/js/ui/boxpointer.js b/js/ui/boxpointer.js index c7a8f92d0..be9c57ce0 100644 --- a/js/ui/boxpointer.js +++ b/js/ui/boxpointer.js @@ -467,7 +467,10 @@ var BoxPointer = GObject.registerClass({ const sourceAllocation = sourceActor.get_allocation_box(); const sourceContentBox = sourceActor instanceof St.Widget ? sourceActor.get_theme_node().get_content_box(sourceAllocation) - : sourceAllocation; + : new Clutter.ActorBox({ + x2: sourceAllocation.get_width(), + y2: sourceAllocation.get_height(), + }); let sourceTopLeft = this._sourceExtents.get_top_left(); let sourceBottomRight = this._sourceExtents.get_bottom_right(); let sourceCenterX = sourceTopLeft.x + sourceContentBox.x1 + (sourceContentBox.x2 - sourceContentBox.x1) * this._sourceAlignment;