[gnome-shell] messageTray: don't show the message tray when a new notification is shown



commit 2d913578e1639b989ca9a244e8cd338b6daf4675
Author: Ana Risteska <a risteska gmail com>
Date:   Sun Jul 8 14:08:56 2012 +0200

    messageTray: don't show the message tray when a new notification is shown
    
    The message tray with its gradient background should only be displayed
    when the summary is shown.
    
    https://bugzilla.gnome.org/show_bug.cgi?id=677210

 js/ui/messageTray.js |   20 ++++++++++----------
 1 files changed, 10 insertions(+), 10 deletions(-)
---
diff --git a/js/ui/messageTray.js b/js/ui/messageTray.js
index 03b9b08..451a408 100644
--- a/js/ui/messageTray.js
+++ b/js/ui/messageTray.js
@@ -1527,7 +1527,7 @@ const MessageTray = new Lang.Class({
         Main.layoutManager.trackChrome(this._corner);
 
         Main.layoutManager.trayBox.add_actor(this.actor);
-        this.actor.y = this.actor.height;
+        this.actor.y = 0;
         Main.layoutManager.trackChrome(this.actor);
         Main.layoutManager.trackChrome(this._notificationBin);
 
@@ -1935,7 +1935,7 @@ const MessageTray = new Lang.Class({
     _onTrayHoverChanged: function() {
         if (this.actor.hover) {
             // Don't do anything if the one pixel area at the bottom is hovered over while the tray is hidden.
-            if (this._trayState == State.HIDDEN)
+            if (this._trayState == State.HIDDEN && this._notificationState == State.HIDDEN)
                 return;
 
             // Don't do anything if this._useLongerTrayLeftTimeout is true, meaning the notification originally
@@ -2070,7 +2070,7 @@ const MessageTray = new Lang.Class({
         let notificationUrgent = this._notificationQueue.length > 0 && this._notificationQueue[0].urgency == Urgency.CRITICAL;
         let notificationsPending = this._notificationQueue.length > 0 && ((!this._busy && !this._inFullscreen) || notificationUrgent);
         let notificationPinned = this._pointerInTray && !this._pointerInSummary && !this._notificationRemoved;
-        let notificationExpanded = this._notificationBin.y < 0;
+        let notificationExpanded = this._notificationBin.y < - this.actor.height;
         let notificationExpired = (this._notificationTimeoutId == 0 && !(this._notification && this._notification.urgency == Urgency.CRITICAL) && !this._pointerInTray && !this._locked && !(this._pointerInKeyboard && notificationExpanded)) || this._notificationRemoved;
         let canShowNotification = notificationsPending && this._summaryState == State.HIDDEN;
 
@@ -2150,8 +2150,7 @@ const MessageTray = new Lang.Class({
         // Tray itself
         let trayIsVisible = (this._trayState == State.SHOWING ||
                              this._trayState == State.SHOWN);
-        let trayShouldBeVisible = (!notificationsDone ||
-                                   this._summaryState == State.SHOWING ||
+        let trayShouldBeVisible = (this._summaryState == State.SHOWING ||
                                    this._summaryState == State.SHOWN);
         if (!trayIsVisible && trayShouldBeVisible)
             this._showTray();
@@ -2191,7 +2190,7 @@ const MessageTray = new Lang.Class({
 
     _hideTray: function() {
         this._tween(this.actor, '_trayState', State.HIDDEN,
-                    { y: this.actor.height,
+                    { y: 0,
                       time: ANIMATION_TIME,
                       transition: 'easeOutQuad'
                     });
@@ -2228,7 +2227,7 @@ const MessageTray = new Lang.Class({
         this._notificationBin.child = this._notification.actor;
 
         this._notificationBin.opacity = 0;
-        this._notificationBin.y = this.actor.height;
+        this._notificationBin.y = 0;
         this._notificationBin.show();
 
         this._updateShowingNotification();
@@ -2263,7 +2262,8 @@ const MessageTray = new Lang.Class({
         // 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._notificationBin.y = 0).
+        // We tween any notification showing in the banner mode to banner height
+        // (this._notificationBin.y = -this.actor.height).
         // 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.
         //
@@ -2280,7 +2280,7 @@ const MessageTray = new Lang.Class({
                             onCompleteScope: this
                           };
         if (!this._notification.expanded)
-            tweenParams.y = 0;
+            tweenParams.y = - this.actor.height;
 
         this._tween(this._notificationBin, '_notificationState', State.SHOWN, tweenParams);
    },
@@ -2369,7 +2369,7 @@ const MessageTray = new Lang.Class({
     },
 
     _onNotificationExpanded: function() {
-        let expandedY = this.actor.height - this._notificationBin.height;
+        let expandedY = - this._notificationBin.height;
 
         // Don't animate the notification to its new position if it has shrunk:
         // there will be a very visible "gap" that breaks the illusion.



[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]