123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051 |
- From 8ae0c69ccf9dede2770ca8e74945e29b8c528aa5 Mon Sep 17 00:00:00 2001
- From: Cosimo Cecchi <cosimoc@gnome.org>
- Date: Fri, 16 Oct 2015 13:45:09 -0700
- Subject: windowManager: fix fullscreen clone being left around
- If we get another effect on the same actor, we should make sure to
- remove the clone through the "overwrite" methods provided by Tweener, or
- there will be a race that might end up with a stray clone being left
- around.
- https://bugzilla.gnome.org/show_bug.cgi?id=756714
- ---
- js/ui/windowManager.js | 15 ++++++++++++++-
- 1 file changed, 14 insertions(+), 1 deletion(-)
- diff --git a/js/ui/windowManager.js b/js/ui/windowManager.js
- index c8996d8..32b8c0f 100644
- --- a/js/ui/windowManager.js
- +++ b/js/ui/windowManager.js
- @@ -1296,7 +1296,10 @@ const WindowManager = new Lang.Class({
- transition: 'easeOutQuad',
- onComplete: this._sizeChangeWindowDone,
- onCompleteScope: this,
- - onCompleteParams: [shellwm, actor]
- + onCompleteParams: [shellwm, actor],
- + onOverwrite: this._sizeChangeWindowOverwritten,
- + onOverwriteScope: this,
- + onOverwriteParams: [shellwm, actor]
- });
-
- // Now unfreeze actor updates, to get it to the new size.
- @@ -1321,6 +1324,16 @@ const WindowManager = new Lang.Class({
- }
- },
-
- + _sizeChangeWindowOverwritten: function(shellwm, actor) {
- + if (this._removeEffect(this._resizing, actor)) {
- + let actorClone = actor.__fullscreenClone;
- + if (actorClone) {
- + actorClone.destroy();
- + delete actor.__fullscreenClone;
- + }
- + }
- + },
- +
- _hasAttachedDialogs: function(window, ignoreWindow) {
- var count = 0;
- window.foreach_transient(function(win) {
- --
- cgit v0.11.2
|