[gnome-shell/gnome-40] ControlsManager: Propagate unmap before hiding the WorkspacesDisplay
- From: Robert Mader <rmader src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [gnome-shell/gnome-40] ControlsManager: Propagate unmap before hiding the WorkspacesDisplay
- Date: Sun, 9 Jan 2022 21:03:41 +0000 (UTC)
commit 9cb416638d421b94603179d467593a4c8efc4e17
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>
(cherry picked from commit ee41dfdb8c02bd808b458e093d426e772810f29c)
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]