[gnome-shell] Hide summary box pointer without animating if it is empty



commit 659130856cdea394c3b51c88ccd3fda78e770dd2
Author: Marina Zhurakhinskaya <marinaz redhat com>
Date:   Sat Mar 26 03:25:25 2011 -0400

    Hide summary box pointer without animating if it is empty
    
    This ensures that we don't show a small black blob fading away
    when the user clicks on the notification and it is removed.
    
    Set HIDING state right away in _hideSummaryBoxPointer() so that
    it is only called once. Update this._pointerInTray when the tray
    is unlocked, so that we are not dependent on escapeTray() being
    triggered by 'done-displaying-content' signal.
    
    https://bugzilla.gnome.org/show_bug.cgi?id=645697

 js/ui/messageTray.js |   10 ++++++++--
 1 files changed, 8 insertions(+), 2 deletions(-)
---
diff --git a/js/ui/messageTray.js b/js/ui/messageTray.js
index fa96526..64a4fb3 100644
--- a/js/ui/messageTray.js
+++ b/js/ui/messageTray.js
@@ -1417,6 +1417,7 @@ MessageTray.prototype = {
         if (!this._locked)
             return;
         this._locked = false;
+        this._pointerInTray = this.actor.hover && !this._summaryBoxPointer.bin.hover;
         this._updateState();
     },
 
@@ -2106,13 +2107,18 @@ MessageTray.prototype = {
     },
 
     _hideSummaryBoxPointer: function() {
+        this._summaryBoxPointerState = State.HIDING;
         // Unset this._clickedSummaryItem if we are no longer showing the summary
         if (this._summaryState != State.SHOWN)
             this._unsetClickedSummaryItem();
 
         this._focusGrabber.ungrabFocus();
-        this._summaryBoxPointerState = State.HIDING;
-        this._summaryBoxPointer.hide(true, Lang.bind(this, this._hideSummaryBoxPointerCompleted));
+        if (this._summaryBoxPointerItem.source.notifications.length == 0) {
+            this._summaryBoxPointer.actor.hide();
+            this._hideSummaryBoxPointerCompleted();
+        } else {
+            this._summaryBoxPointer.hide(true, Lang.bind(this, this._hideSummaryBoxPointerCompleted));
+        }
     },
 
     _hideSummaryBoxPointerCompleted: function() {



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