[gnome-shell/wip/rstrode/rhel-7.9: 43/86] windowManager: ensure actor resize clone dies with actor
- From: Ray Strode <halfline src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [gnome-shell/wip/rstrode/rhel-7.9: 43/86] windowManager: ensure actor resize clone dies with actor
- Date: Fri, 12 Feb 2021 19:04:07 +0000 (UTC)
commit 05945da6e8db48341f610a907b3c2d34f39b4638
Author: Ray Strode <rstrode redhat com>
Date: Thu Feb 7 14:27:35 2019 -0500
windowManager: ensure actor resize clone dies with actor
If a window gets destroyed right before it's resize
animation starts the user can get confronted with an undead
zombie clone that doesn't go away.
This commit makes sure said clones get reaped with their
actors.
https://gitlab.gnome.org/GNOME/gnome-shell/issues/1166
js/ui/windowManager.js | 8 +++++++-
1 file changed, 7 insertions(+), 1 deletion(-)
---
diff --git a/js/ui/windowManager.js b/js/ui/windowManager.js
index b439b3c0a4..3fda973f13 100644
--- a/js/ui/windowManager.js
+++ b/js/ui/windowManager.js
@@ -1318,8 +1318,13 @@ var WindowManager = new Lang.Class({
if (this._clearAnimationInfo(actor))
this._shellwm.completed_size_change(actor);
+ let destroyId = actor.connect('destroy', () => {
+ this._clearAnimationInfo(actor);
+ });
+
actor.__animationInfo = { clone: actorClone,
- oldRect: oldFrameRect };
+ oldRect: oldFrameRect,
+ destroyId: destroyId };
},
_sizeChangedWindow(shellwm, actor) {
@@ -1380,6 +1385,7 @@ var WindowManager = new Lang.Class({
_clearAnimationInfo(actor) {
if (actor.__animationInfo) {
actor.__animationInfo.clone.destroy();
+ actor.disconnect(actor.__animationInfo.destroyId);
delete actor.__animationInfo;
return true;
}
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]