[gnome-shell] dash: Add tooltip label to show applications icon



commit 3fafe0da07acdb7f33d00fb841a4b04e89023ba0
Author: Jasper St. Pierre <jstpierre mecheye net>
Date:   Wed Aug 22 06:46:28 2012 -0300

    dash: Add tooltip label to show applications icon
    
    Make the tooltip dependent on whether we are currently dragging
    on hover or not.
    
    https://bugzilla.gnome.org/show_bug.cgi?id=682445

 js/ui/dash.js |   35 +++++++++++++++++++++--------------
 1 files changed, 21 insertions(+), 14 deletions(-)
---
diff --git a/js/ui/dash.js b/js/ui/dash.js
index 47f6f4d..6fcd70d 100644
--- a/js/ui/dash.js
+++ b/js/ui/dash.js
@@ -250,6 +250,7 @@ const ShowAppsIcon = new Lang.Class({
         this.toggleButton._delegate = this;
 
         this.setChild(this.toggleButton);
+        this.setHover(false);
     },
 
     _createIcon: function(size) {
@@ -265,6 +266,11 @@ const ShowAppsIcon = new Lang.Class({
         this.toggleButton.set_hover(hovered);
         if (this._iconActor)
             this._iconActor.set_hover(hovered);
+
+        if (hovered)
+            this.setLabelText(_("Remove from Favorites"));
+        else
+            this.setLabelText(_("Show Applications"));
     },
 
     // Rely on the dragged item being a favorite
@@ -330,6 +336,7 @@ const Dash = new Lang.Class({
 
         this._showAppsIcon = new ShowAppsIcon();
         this._showAppsIcon.icon.setIconSize(this.iconSize);
+        this._hookUpLabel(this._showAppsIcon);
 
         this.showAppsButton = this._showAppsIcon.toggleButton;
 
@@ -428,6 +435,17 @@ const Dash = new Lang.Class({
         Main.queueDeferredWork(this._workId);
     },
 
+    _hookUpLabel: function(item) {
+        item.child.connect('notify::hover', Lang.bind(this, function() {
+            this._onHover(item);
+        }));
+
+        Main.overview.connect('hiding', Lang.bind(this, function() {
+            this._labelShowing = false;
+            item.hideLabel();
+        }));
+    },
+
     _createAppItem: function(app) {
         let display = new AppDisplay.AppWellIcon(app,
                                                  { setSizeManually: true,
@@ -447,25 +465,14 @@ const Dash = new Lang.Class({
         item.setLabelText(app.get_name());
         // Override default AppWellIcon label_actor
         display.actor.label_actor = item.label;
-
-
         display.icon.setIconSize(this.iconSize);
-        display.actor.connect('notify::hover',
-                               Lang.bind(this, function() {
-                                   this._onHover(item, display)
-                               }));
-
-        Main.overview.connect('hiding',
-                              Lang.bind(this, function() {
-                                  this._labelShowing = false;
-                                  item.hideLabel();
-                              }));
+        this._hookUpLabel(item);
 
         return item;
     },
 
-    _onHover: function (item, display) {
-        if (display.actor.get_hover() && !display.isMenuUp) {
+    _onHover: function (item) {
+        if (item.child.get_hover() && !item.child._delegate.isMenuUp) {
             if (this._showLabelTimeoutId == 0) {
                 let timeout = this._labelShowing ? 0 : DASH_ITEM_HOVER_TIMEOUT;
                 this._showLabelTimeoutId = Mainloop.timeout_add(timeout,



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