workspace: Implement windowCenter using bounding box
This isn't quite the same as the allocation, but it's what the workspace actually wants to use given that we use the bounding box of the WindowClone for all the layout calculation. So instead of calculating the windowCenter in the WindowClone, make use of the bounding-box property of the layout manager and return the center point of that. https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/1297
This commit is contained in:
parent
1ea22a5281
commit
a2545d186a
@ -222,8 +222,6 @@ var WindowClone = GObject.registerClass({
|
|||||||
this.x = this.boundingBox.x;
|
this.x = this.boundingBox.x;
|
||||||
this.y = this.boundingBox.y;
|
this.y = this.boundingBox.y;
|
||||||
|
|
||||||
this._computeWindowCenter();
|
|
||||||
|
|
||||||
let clickAction = new Clutter.ClickAction();
|
let clickAction = new Clutter.ClickAction();
|
||||||
clickAction.connect('clicked', this._onClicked.bind(this));
|
clickAction.connect('clicked', this._onClicked.bind(this));
|
||||||
clickAction.connect('long-press', this._onLongPress.bind(this));
|
clickAction.connect('long-press', this._onLongPress.bind(this));
|
||||||
@ -328,12 +326,9 @@ var WindowClone = GObject.registerClass({
|
|||||||
}
|
}
|
||||||
|
|
||||||
get windowCenter() {
|
get windowCenter() {
|
||||||
return this._windowCenter;
|
const box = this.layout_manager.bounding_box;
|
||||||
}
|
|
||||||
|
|
||||||
_computeWindowCenter() {
|
return new Graphene.Point({
|
||||||
let box = this.realWindow.get_allocation_box();
|
|
||||||
this._windowCenter = new Graphene.Point({
|
|
||||||
x: box.get_x() + box.get_width() / 2,
|
x: box.get_x() + box.get_width() / 2,
|
||||||
y: box.get_y() + box.get_height() / 2,
|
y: box.get_y() + box.get_height() / 2,
|
||||||
});
|
});
|
||||||
|
Loading…
Reference in New Issue
Block a user