[gnome-shell/gnome-3-18] windowManager: fix fullscreen clone being left around
- From: Cosimo Cecchi <cosimoc src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [gnome-shell/gnome-3-18] windowManager: fix fullscreen clone being left around
- Date: Fri, 16 Oct 2015 21:11:20 +0000 (UTC)
commit 8ae0c69ccf9dede2770ca8e74945e29b8c528aa5
Author: Cosimo Cecchi <cosimoc gnome org>
Date: Fri Oct 16 13:45:09 2015 -0700
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 files changed, 14 insertions(+), 1 deletions(-)
---
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) {
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]