Index: chrome/browser/ui/views/toolbar/toolbar_button.cc |
diff --git a/chrome/browser/ui/views/toolbar/toolbar_button.cc b/chrome/browser/ui/views/toolbar/toolbar_button.cc |
index 33cfcd013c9dc9d0e64e3a372ebb59925614c3ab..1a310b22a3256c0055edf1a102263e8a511ac943 100644 |
--- a/chrome/browser/ui/views/toolbar/toolbar_button.cc |
+++ b/chrome/browser/ui/views/toolbar/toolbar_button.cc |
@@ -144,6 +144,8 @@ void ToolbarButton::OnMouseReleased(const ui::MouseEvent& event) { |
if (IsTriggerableEvent(event)) |
show_menu_factory_.InvalidateWeakPtrs(); |
+ UpdateInkDropHoverState(); |
+ |
if (!HitTestPoint(event.location())) |
ink_drop_animation_controller_->AnimateToState(views::InkDropState::HIDDEN); |
} |
@@ -151,7 +153,13 @@ void ToolbarButton::OnMouseReleased(const ui::MouseEvent& event) { |
void ToolbarButton::OnMouseCaptureLost() { |
} |
+void ToolbarButton::OnMouseEntered(const ui::MouseEvent& event) { |
+ UpdateInkDropHoverState(); |
+} |
+ |
void ToolbarButton::OnMouseExited(const ui::MouseEvent& event) { |
+ UpdateInkDropHoverState(); |
+ |
// Starting a drag results in a MouseExited, we need to ignore it. |
// A right click release triggers an exit event. We want to |
// remain in a PUSHED state until the drop down menu closes. |
@@ -214,6 +222,10 @@ ToolbarButton::CreateDefaultBorder() const { |
return border.Pass(); |
} |
+void ToolbarButton::OnEnabledChanged() { |
+ UpdateInkDropHoverState(); |
+} |
+ |
void ToolbarButton::ShowContextMenuForView(View* source, |
const gfx::Point& point, |
ui::MenuSourceType source_type) { |
@@ -329,6 +341,7 @@ void ToolbarButton::ShowDropDownMenu(ui::MenuSourceType source_type) { |
ink_drop_animation_controller_->AnimateToState( |
views::InkDropState::DEACTIVATED); |
+ UpdateInkDropHoverState(); |
menu_showing_ = false; |
@@ -346,6 +359,10 @@ gfx::Point ToolbarButton::CalculateInkDropCenter() const { |
return GetLocalBounds().CenterPoint(); |
} |
+void ToolbarButton::UpdateInkDropHoverState() { |
+ ink_drop_animation_controller_->SetHovered((enabled() && IsMouseHovered())); |
+} |
+ |
const char* ToolbarButton::GetClassName() const { |
return "ToolbarButton"; |
} |