[gnome-shell] ControlsManager: Propagate unmap before hiding the WorkspacesDisplay



commit ee41dfdb8c02bd808b458e093d426e772810f29c
Author: Robert Mader <robert mader posteo de>
Date:   Sat Jan 8 14:44:23 2022 +0100

    ControlsManager: Propagate unmap before hiding the WorkspacesDisplay
    
    Hiding the `WorkspacesDisplay` triggers a reallocation of the
    `ControlsManagerLayout` which can fail with the following error:
    ```
    JS ERROR: TypeError: workspace is undefined
    _getSpacing@resource:///org/gnome/shell/ui/workspacesView.js:229:13
    vfunc_allocate@resource:///org/gnome/shell/ui/workspacesView.js:355:18
    vfunc_allocate@resource:///org/gnome/shell/ui/overviewControls.js:200:33
    vfunc_hide@resource:///org/gnome/shell/ui/workspacesView.js:1070:38
    vfunc_unmap@resource:///org/gnome/shell/ui/overviewControls.js:672:33
    hideOverview@resource:///org/gnome/shell/ui/layout.js:312:28
    _hideDone@resource:///org/gnome/shell/ui/overview.js:617:32
    onComplete@resource:///org/gnome/shell/ui/overview.js:390:37
    _makeEaseCallback/<@resource:///org/gnome/shell/ui/environment.js:134:13
    _easeActorProperty/<@resource:///org/gnome/shell/ui/environment.js:298:60
    ```
    
    This can be reproduced by closing the overview with the three-finger
    gesture.
    
    Thus propagate the unmap before hiding the `WorkspacesDisplay`.
    
    Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/2088>

 js/ui/overviewControls.js | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)
---
diff --git a/js/ui/overviewControls.js b/js/ui/overviewControls.js
index 6cbaa22ba9..7a77b32500 100644
--- a/js/ui/overviewControls.js
+++ b/js/ui/overviewControls.js
@@ -669,8 +669,8 @@ class ControlsManager extends St.Widget {
     }
 
     vfunc_unmap() {
-        this._workspacesDisplay.hide();
         super.vfunc_unmap();
+        this._workspacesDisplay.hide();
     }
 
     animateToOverview(state, callback) {


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