WindowOverlay: remove animations when relayouting

If WindowOverlay.relayout() is called without animation, we must stop
any preexisting animation, otherwise it will continue to run with the
previous parameters and cause the overlay to end up in the wrong position.

https://bugzilla.gnome.org/show_bug.cgi?id=693970
This commit is contained in:
Giovanni Campagna 2013-02-16 17:26:28 +01:00
parent 2df86e1966
commit 5c7f0a0ad8

View File

@ -529,10 +529,15 @@ const WindowOverlay = new Lang.Class({
}, },
relayout: function(animate) { relayout: function(animate) {
let [cloneX, cloneY, cloneWidth, cloneHeight] = this._windowClone.slot;
let button = this.closeButton; let button = this.closeButton;
let title = this.title; let title = this.title;
let border = this.border;
Tweener.removeTweens(button);
Tweener.removeTweens(title);
Tweener.removeTweens(border);
let [cloneX, cloneY, cloneWidth, cloneHeight] = this._windowClone.slot;
let layout = Meta.prefs_get_button_layout(); let layout = Meta.prefs_get_button_layout();
let side = layout.left_buttons.indexOf(Meta.ButtonFunction.CLOSE) > -1 ? St.Side.LEFT : St.Side.RIGHT; let side = layout.left_buttons.indexOf(Meta.ButtonFunction.CLOSE) > -1 ? St.Side.LEFT : St.Side.RIGHT;