workspace: Unbreak reposition animation
Commit 1ea22a5281
broke the window reposition animation when it
based the ::size-changed signal on the layout manager's bounding box
instead of the MetaWindow::size-changed signal.
That's happening because of the combination of:
1. we adjust to window size changes immediately without animations
2. closing a window triggers a change to a 0x0 bounding box which
is not treated as a size change
Fix this by addressing the 2nd factor, and don't treat a change to
a 0x0 bounding box as size change.
https://gitlab.gnome.org/GNOME/gnome-shell/-/issues/2901
This commit is contained in:
parent
af543daf1c
commit
b2c35e4fb0
@ -236,7 +236,11 @@ var WindowClone = GObject.registerClass({
|
|||||||
this._stackAbove = null;
|
this._stackAbove = null;
|
||||||
|
|
||||||
this._windowContainer.layout_manager.connect(
|
this._windowContainer.layout_manager.connect(
|
||||||
'notify::bounding-box', () => this.emit('size-changed'));
|
'notify::bounding-box', layout => {
|
||||||
|
// A bounding box of 0x0 means all windows were removed
|
||||||
|
if (layout.bounding_box.get_area() > 0)
|
||||||
|
this.emit('size-changed');
|
||||||
|
});
|
||||||
|
|
||||||
this._windowDestroyId =
|
this._windowDestroyId =
|
||||||
this.realWindow.connect('destroy', () => this.destroy());
|
this.realWindow.connect('destroy', () => this.destroy());
|
||||||
|
Loading…
Reference in New Issue
Block a user