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: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/2623>
This commit is contained in:
Jonas Ådahl 2023-02-02 15:54:05 +01:00 committed by Marge Bot
parent ed2a11ba57
commit 73e0f02b1d

View File

@ -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() {