84250bbf88
If a new SwitcherPopup is created and there are no windows or apps to switch through found, instead of returning from _init(), still initialize the SwitcherPopup and let the check in SwitcherPopup.show() return false to terminate the popup. In both cases, with or without the return statements, WindowManager._startSwitcher() will call SwicherPopup.destroy(), which will try to disconnect signal handlers, destroy actors etc. Now if the constructor can't finish creating the popup, some of the functions called from _onDestroy() will fail and throw errors. One of those cases is when window-switcher is limited to the current workspace, and a WindowCyclerPopup is initiated on an empty workspace. Because this._highlight hasn't been created, _onDestroy() will fail when trying to destroy the actor of this._highlight. Also, the actor of this._switcherList will not get destroyed in case show() returns because this._items is empty. For example, this will happen when a new AppSwitcherPopup is initialized with at least 1 running app, but 0 windows on the active workspace. https://gitlab.gnome.org/GNOME/gnome-shell/merge_requests/168 |
||
---|---|---|
.. | ||
extensionPrefs | ||
gdm | ||
misc | ||
perf | ||
portalHelper | ||
ui | ||
js-resources.gresource.xml | ||
meson.build | ||
portal-resources.gresource.xml | ||
prefs-resources.gresource.xml |