diff --git a/js/ui/windowManager.js b/js/ui/windowManager.js index c809c0a22..c535fef4d 100644 --- a/js/ui/windowManager.js +++ b/js/ui/windowManager.js @@ -299,12 +299,28 @@ const WindowManager = new Lang.Class({ })); if (actor.meta_window.is_attached_dialog()) { this._checkDimming(actor.get_meta_window().get_transient_for()); + if (this._shouldAnimate()) { + actor.set_scale(1.0, 0.0); + actor.show(); + this._mapping.push(actor); - if (!this._shouldAnimate()) { - shellwm.completed_map(actor); + Tweener.addTween(actor, + { scale_y: 1, + time: WINDOW_ANIMATION_TIME, + transition: "easeOutQuad", + onComplete: this._mapWindowDone, + onCompleteScope: this, + onCompleteParams: [shellwm, actor], + onOverwrite: this._mapWindowOverwrite, + onOverwriteScope: this, + onOverwriteParams: [shellwm, actor] + }); return; } - } else if (!this._shouldAnimateActor(actor)) { + shellwm.completed_map(actor); + return; + } + if (!this._shouldAnimateActor(actor)) { shellwm.completed_map(actor); return; } @@ -360,7 +376,7 @@ const WindowManager = new Lang.Class({ return; } - actor.opacity = 255; + actor.set_scale(1.0, 1.0); actor.show(); this._destroying.push(actor); @@ -370,7 +386,7 @@ const WindowManager = new Lang.Class({ })); Tweener.addTween(actor, - { opacity: 0, + { scale_y: 0, time: WINDOW_ANIMATION_TIME, transition: "easeOutQuad", onComplete: this._destroyWindowDone,