workspace: Remove tweens when hiding overlays

The window overlays may be shown erroneously if hideOverlays is
called while the corresponding clone has an uncompleted tween which
calls showOverlays in its onComplete handler, for instance when
quickly leaving the overview before the initial overview animation
has finished. To fix, remove all existing tweens when hiding the
overlays.

https://bugzilla.gnome.org/show_bug.cgi?id=666020
This commit is contained in:
Florian Müllner 2011-12-12 19:48:16 +01:00
parent 58e4870cb8
commit 8a6a3968c3

View File

@ -1130,6 +1130,8 @@ const Workspace = new Lang.Class({
_hideAllOverlays: function() { _hideAllOverlays: function() {
for (let i = 0; i < this._windows.length; i++) { for (let i = 0; i < this._windows.length; i++) {
let clone = this._windows[i];
Tweener.removeTweens(clone.actor);
let overlay = this._windowOverlays[i]; let overlay = this._windowOverlays[i];
if (overlay) if (overlay)
overlay.hide(); overlay.hide();