mirror of
https://github.com/edu4rdshl/gnome-shell.git
synced 2026-07-18 07:34:54 +00:00
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
This commit is contained in:
parent
3c5c3a6597
commit
83e7f6f496
1 changed files with 14 additions and 1 deletions
|
|
@ -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) {
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue