From 41f933b89e275d06936bba2df8796a16e02baf41 Mon Sep 17 00:00:00 2001 From: Giovanni Campagna Date: Fri, 30 Nov 2012 16:05:38 +0100 Subject: [PATCH] MessageTray: fix notification height expansion MessageTray._tween removes all tweens now, so it removes also those setting the height to expanded for critical notifications. This is a regression from 1a27d7dfc02c06bd0ccf4258a9108207b8832ce4 https://bugzilla.gnome.org/show_bug.cgi?id=689295 --- js/ui/messageTray.js | 24 ++++++------------------ 1 file changed, 6 insertions(+), 18 deletions(-) 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); },