[gnome-shell] workspaceThumbnails: Delay workspace removal while collapsing



commit 7b1b04f95aeb15a7edf3e1ea00b9a3b097c1bc1d
Author: Florian Müllner <fmuellner gnome org>
Date:   Wed Feb 17 09:54:14 2021 +0100

    workspaceThumbnails: Delay workspace removal while collapsing
    
    Animating a thumbnail removal while also collapsing the minimap
    itself doesn't look good, so keep the stale thumbnail until the
    minimap is hidden.
    
    https://gitlab.gnome.org/GNOME/gnome-shell/-/issues/3739
    
    Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/1696>

 js/ui/workspaceThumbnail.js | 9 +++++++++
 1 file changed, 9 insertions(+)
---
diff --git a/js/ui/workspaceThumbnail.js b/js/ui/workspaceThumbnail.js
index b06e60209a..03e97f1752 100644
--- a/js/ui/workspaceThumbnail.js
+++ b/js/ui/workspaceThumbnail.js
@@ -691,6 +691,11 @@ var ThumbnailsBox = GObject.registerClass({
         global.display.connect('workareas-changed',
                                this._updatePorthole.bind(this));
 
+        this.connect('notify::visible', () => {
+            if (!this.visible)
+                this._queueUpdateStates();
+        });
+
         this._switchWorkspaceNotifyId = 0;
         this._nWorkspacesNotifyId = 0;
         this._syncStackingId = 0;
@@ -1122,6 +1127,10 @@ var ThumbnailsBox = GObject.registerClass({
         if (this._animatingIndicator)
             return;
 
+        // Likewise if we are in the process of hiding
+        if (!this._shouldShow && this.visible)
+            return;
+
         // Then slide out any thumbnails that have been destroyed
         this._iterateStateThumbnails(ThumbnailState.REMOVING, thumbnail => {
             this._setThumbnailState(thumbnail, ThumbnailState.ANIMATING_OUT);


[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]