[gnome-shell/gnome-3-38] windowManager: Check whether metaWindow is NULL after destroy animation
- From: Florian Müllner <fmuellner src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [gnome-shell/gnome-3-38] windowManager: Check whether metaWindow is NULL after destroy animation
- Date: Wed, 2 Dec 2020 23:03:51 +0000 (UTC)
commit e8ab3bf53d1b7224c749ae8187fd64c21671cc59
Author: Jonas Dreßler <verdre v0yd nl>
Date: Sat Oct 24 22:24:35 2020 +0200
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>
(cherry picked from commit 96dc6d19dd30ec6dcac375de6811401012e77369)
js/ui/windowManager.js | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
---
diff --git a/js/ui/windowManager.js b/js/ui/windowManager.js
index 91b764ea8d..176ec0d856 100644
--- a/js/ui/windowManager.js
+++ b/js/ui/windowManager.js
@@ -1617,7 +1617,7 @@ var WindowManager = class {
_destroyWindowDone(shellwm, 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) {
parent.disconnect(actor._parentDestroyId);
actor._parentDestroyId = 0;
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]