From 245e43ea8c3ab754bab05eccfcb088995f5421d8 Mon Sep 17 00:00:00 2001 From: "Jasper St. Pierre" Date: Wed, 3 Oct 2012 02:17:07 -0300 Subject: [PATCH] dash: Make the tooltip and hover effect sync up to the real insensitivity We shouldn't display "Remove from Favorites" when dropping on the button will do nothing. https://bugzilla.gnome.org/show_bug.cgi?id=685313 --- js/ui/dash.js | 28 +++++++++++++++++++++------- 1 file changed, 21 insertions(+), 7 deletions(-) diff --git a/js/ui/dash.js b/js/ui/dash.js index 3a7828cf8..427802ac0 100644 --- a/js/ui/dash.js +++ b/js/ui/dash.js @@ -262,7 +262,7 @@ const ShowAppsIcon = new Lang.Class({ this.toggleButton._delegate = this; this.setChild(this.toggleButton); - this.setHover(false); + this.setDragApp(null); this.toggleButton.label_actor = this.label; }, @@ -274,12 +274,23 @@ const ShowAppsIcon = new Lang.Class({ return this._iconActor; }, - setHover: function(hovered) { - this.toggleButton.set_hover(hovered); - if (this._iconActor) - this._iconActor.set_hover(hovered); + _canRemoveApp: function(app) { + if (app == null) + return false; - if (hovered) + let id = app.get_id(); + let isFavorite = AppFavorites.getAppFavorites().isFavorite(id); + return isFavorite; + }, + + setDragApp: function(app) { + let canRemove = this._canRemoveApp(app); + + this.toggleButton.set_hover(canRemove); + if (this._iconActor) + this._iconActor.set_hover(canRemove); + + if (canRemove) this.setLabelText(_("Remove from Favorites")); else this.setLabelText(_("Show Applications")); @@ -453,7 +464,10 @@ const Dash = new Lang.Class({ if (!this._box.contains(dragEvent.targetActor) || showAppsHovered) this._clearDragPlaceholder(); - this._showAppsIcon.setHover(showAppsHovered); + if (showAppsHovered) + this._showAppsIcon.setDragApp(app); + else + this._showAppsIcon.setDragApp(null); return DND.DragMotionResult.CONTINUE; },