diff --git a/js/ui/messageTray.js b/js/ui/messageTray.js index 0241dbdc3..35665bd5a 100644 --- a/js/ui/messageTray.js +++ b/js/ui/messageTray.js @@ -2263,40 +2263,28 @@ const MessageTray = new Lang.Class({ _updateShowingNotification: function() { this._notification.acknowledged = true; - Tweener.removeTweens(this._notificationWidget); - // We auto-expand notifications with CRITICAL urgency. - // We use Tweener.removeTweens() to remove a tween that was hiding the notification we are - // updating, in case that notification was in the process of being hidden. However, - // Tweener.removeTweens() would also remove a tween that was updating the position of the - // notification we are updating, in case that notification was already expanded and its height - // changed. Therefore we need to call this._expandNotification() for expanded notifications - // to make sure their position is updated. - if (this._notification.urgency == Urgency.CRITICAL || this._notification.expanded) + if (this._notification.urgency == Urgency.CRITICAL) this._expandNotification(true); // We tween all notifications to full opacity. This ensures that both new notifications and // notifications that might have been in the process of hiding get full opacity. // - // We tween any notification showing in the banner mode to banner height - // (this._notificationWidget.y = -this._notificationWidget.height). + // We tween any notification showing in the banner mode to the appropriate height + // (which is banner height or expanded height, depending on the notification state) // This ensures that both new notifications and notifications in the banner mode that might - // have been in the process of hiding are shown with the banner height. + // have been in the process of hiding are shown with the correct height. // // We use this._showNotificationCompleted() onComplete callback to extend the time the updated // notification is being shown. - // - // We don't set the y parameter for the tween for expanded notifications because - // this._expandNotification() will result in getting this._notificationWidget.y set to the appropriate - // fully expanded value. + let tweenParams = { opacity: 255, + y: -this._notificationWidget.height, time: ANIMATION_TIME, transition: 'easeOutQuad', onComplete: this._showNotificationCompleted, onCompleteScope: this }; - if (!this._notification.expanded) - tweenParams.y = -this._notificationWidget.height; this._tween(this._notificationWidget, '_notificationState', State.SHOWN, tweenParams); },