[gnome-shell] workspace: Don't unfreeze layout during overview animation
- From: Marge Bot <marge-bot src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [gnome-shell] workspace: Don't unfreeze layout during overview animation
- Date: Wed, 13 Jan 2021 21:43:27 +0000 (UTC)
commit d82dcd6f67f4f7b4aa7fb3fee82fec0782c6ecbd
Author: Ivan Molodetskikh <yalterz gmail com>
Date: Sun Dec 27 20:39:22 2020 +0300
workspace: Don't unfreeze layout during overview animation
During overview closing animation the allocation expands more or less
every frame. Unfreezing the layout then leads to windows snapping to
their new position if e.g. a window was closed which doesn't look nice.
Fixes https://gitlab.gnome.org/GNOME/gnome-shell/-/issues/3216
Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/1550>
js/ui/workspace.js | 9 +++++++--
1 file changed, 7 insertions(+), 2 deletions(-)
---
diff --git a/js/ui/workspace.js b/js/ui/workspace.js
index 74d23840bc..de1ce2d316 100644
--- a/js/ui/workspace.js
+++ b/js/ui/workspace.js
@@ -566,8 +566,13 @@ var WorkspaceLayout = GObject.registerClass({
this._lastBox = containerBox.copy();
// If the containers size changed, we can no longer keep around
- // the old windowSlots, so we must unfreeze the layout
- if (this._layoutFrozen && containerAllocationChanged) {
+ // the old windowSlots, so we must unfreeze the layout.
+ //
+ // However, if the overview animation is in progress, don't unfreeze
+ // the layout. This is needed to prevent windows "snapping" to their
+ // new positions during the overview closing animation when the
+ // allocation subtly expands every frame.
+ if (this._layoutFrozen && containerAllocationChanged && !Main.overview.animationInProgress) {
this._layoutFrozen = false;
this.notify('layout-frozen');
}
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]