boxpointer: Trigger a relayout when setting position
Since the repositioning is now done during allocation, we can just queue a relayout when setting the boxpointer positioning via the source actor. As per this _relayout() and _updateFlip now needs to be called during allocation only and with an allocation box set. https://gitlab.gnome.org/GNOME/gnome-shell/merge_requests/576
This commit is contained in:
parent
3d4ba028c4
commit
cb4c0d32c0
@ -455,10 +455,6 @@ var BoxPointer = GObject.registerClass({
|
|||||||
}
|
}
|
||||||
|
|
||||||
setPosition(sourceActor, alignment) {
|
setPosition(sourceActor, alignment) {
|
||||||
// We need to show it now to force an allocation,
|
|
||||||
// so that we can query the correct size.
|
|
||||||
this.show();
|
|
||||||
|
|
||||||
if (!this._sourceActor || sourceActor != this._sourceActor) {
|
if (!this._sourceActor || sourceActor != this._sourceActor) {
|
||||||
if (this._sourceActorDestroyId) {
|
if (this._sourceActorDestroyId) {
|
||||||
this._sourceActor.disconnect(this._sourceActorDestroyId);
|
this._sourceActor.disconnect(this._sourceActorDestroyId);
|
||||||
@ -474,13 +470,10 @@ var BoxPointer = GObject.registerClass({
|
|||||||
})
|
})
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
this._arrowAlignment = alignment;
|
this._arrowAlignment = alignment;
|
||||||
|
|
||||||
if (!this._sourceActor)
|
this.queue_relayout();
|
||||||
return;
|
|
||||||
|
|
||||||
this._reposition();
|
|
||||||
this._updateFlip();
|
|
||||||
}
|
}
|
||||||
|
|
||||||
setSourceAlignment(alignment) {
|
setSourceAlignment(alignment) {
|
||||||
@ -605,14 +598,8 @@ var BoxPointer = GObject.registerClass({
|
|||||||
parent = parent.get_parent();
|
parent = parent.get_parent();
|
||||||
}
|
}
|
||||||
|
|
||||||
x = Math.floor(x);
|
|
||||||
y = Math.floor(y);
|
|
||||||
|
|
||||||
// Actually set the position
|
// Actually set the position
|
||||||
if (!allocationBox)
|
allocationBox.set_origin(Math.floor(x), Math.floor(y));
|
||||||
this.set_position(x, y);
|
|
||||||
else
|
|
||||||
allocationBox.set_origin(x, y);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
// @origin: Coordinate specifying middle of the arrow, along
|
// @origin: Coordinate specifying middle of the arrow, along
|
||||||
|
Loading…
Reference in New Issue
Block a user