windowManager: Check whether metaWindow is NULL after destroy animation
When logging out or terminating gnome-shell, mutter will unmanage all open windows, triggering the window-close animation in gnome-shell and very quickly after that emitting "kill-window-effects". That means we'll call _destroyWindowDone() to cleanup our animation data, but at this point the MetaWindow of the window is already gone, so we get an error that get_meta_window() returns NULL. Fix that by checking whether get_meta_window() returned NULL and if it did, don't access the window. Fixes https://gitlab.gnome.org/GNOME/gnome-shell/-/issues/2018 Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/1483>
This commit is contained in:
parent
07fd0d3f2e
commit
96dc6d19dd
@ -1614,7 +1614,7 @@ var WindowManager = class {
|
|||||||
|
|
||||||
_destroyWindowDone(shellwm, actor) {
|
_destroyWindowDone(shellwm, actor) {
|
||||||
if (this._destroying.delete(actor)) {
|
if (this._destroying.delete(actor)) {
|
||||||
let parent = actor.get_meta_window().get_transient_for();
|
const parent = actor.get_meta_window()?.get_transient_for();
|
||||||
if (parent && actor._parentDestroyId) {
|
if (parent && actor._parentDestroyId) {
|
||||||
parent.disconnect(actor._parentDestroyId);
|
parent.disconnect(actor._parentDestroyId);
|
||||||
actor._parentDestroyId = 0;
|
actor._parentDestroyId = 0;
|
||||||
|
Loading…
Reference in New Issue
Block a user