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
This commit is contained in:
Jasper St. Pierre 2012-10-03 02:17:07 -03:00
parent 52871c781a
commit 245e43ea8c

View File

@ -262,7 +262,7 @@ const ShowAppsIcon = new Lang.Class({
this.toggleButton._delegate = this; this.toggleButton._delegate = this;
this.setChild(this.toggleButton); this.setChild(this.toggleButton);
this.setHover(false); this.setDragApp(null);
this.toggleButton.label_actor = this.label; this.toggleButton.label_actor = this.label;
}, },
@ -274,12 +274,23 @@ const ShowAppsIcon = new Lang.Class({
return this._iconActor; return this._iconActor;
}, },
setHover: function(hovered) { _canRemoveApp: function(app) {
this.toggleButton.set_hover(hovered); if (app == null)
if (this._iconActor) return false;
this._iconActor.set_hover(hovered);
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")); this.setLabelText(_("Remove from Favorites"));
else else
this.setLabelText(_("Show Applications")); this.setLabelText(_("Show Applications"));
@ -453,7 +464,10 @@ const Dash = new Lang.Class({
if (!this._box.contains(dragEvent.targetActor) || showAppsHovered) if (!this._box.contains(dragEvent.targetActor) || showAppsHovered)
this._clearDragPlaceholder(); this._clearDragPlaceholder();
this._showAppsIcon.setHover(showAppsHovered); if (showAppsHovered)
this._showAppsIcon.setDragApp(app);
else
this._showAppsIcon.setDragApp(null);
return DND.DragMotionResult.CONTINUE; return DND.DragMotionResult.CONTINUE;
}, },