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: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/1969>
This commit is contained in:
parent
bc09c1ca24
commit
0fd205ce54
@ -467,7 +467,10 @@ var BoxPointer = GObject.registerClass({
|
|||||||
const sourceAllocation = sourceActor.get_allocation_box();
|
const sourceAllocation = sourceActor.get_allocation_box();
|
||||||
const sourceContentBox = sourceActor instanceof St.Widget
|
const sourceContentBox = sourceActor instanceof St.Widget
|
||||||
? sourceActor.get_theme_node().get_content_box(sourceAllocation)
|
? 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 sourceTopLeft = this._sourceExtents.get_top_left();
|
||||||
let sourceBottomRight = this._sourceExtents.get_bottom_right();
|
let sourceBottomRight = this._sourceExtents.get_bottom_right();
|
||||||
let sourceCenterX = sourceTopLeft.x + sourceContentBox.x1 + (sourceContentBox.x2 - sourceContentBox.x1) * this._sourceAlignment;
|
let sourceCenterX = sourceTopLeft.x + sourceContentBox.x1 + (sourceContentBox.x2 - sourceContentBox.x1) * this._sourceAlignment;
|
||||||
|
Loading…
Reference in New Issue
Block a user