From 73e0f02b1d0b157c07700a7905044217fb7101ab Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jonas=20=C3=85dahl?= Date: Thu, 2 Feb 2023 15:54:05 +0100 Subject: [PATCH] overviewControls: Don't hide destroyed child widget on unmap When we unmap, the child widgets have already been destroyed, so we shouldn't try to. To detect this, delete the references we keep to them on destroy, and null-check the hide call. Part-of: --- js/ui/overviewControls.js | 13 ++++++++++++- 1 file changed, 12 insertions(+), 1 deletion(-) diff --git a/js/ui/overviewControls.js b/js/ui/overviewControls.js index 66f291b10..3528a73b1 100644 --- a/js/ui/overviewControls.js +++ b/js/ui/overviewControls.js @@ -506,6 +506,8 @@ class ControlsManager extends St.Widget { () => this._shiftState(Meta.MotionDirection.DOWN)); this._update(); + + this.connect('destroy', this._onDestroy.bind(this)); } _getFitModeForState(state) { @@ -715,7 +717,16 @@ class ControlsManager extends St.Widget { vfunc_unmap() { super.vfunc_unmap(); - this._workspacesDisplay.hide(); + this._workspacesDisplay?.hide(); + } + + _onDestroy() { + delete this._searchEntryBin; + delete this._appDisplay; + delete this.dash; + delete this._searchController; + delete this._thumbnailsBox; + delete this._workspacesDisplay; } prepareToEnterOverview() {