Index: ui/views/controls/button/menu_button.cc |
diff --git a/ui/views/controls/button/menu_button.cc b/ui/views/controls/button/menu_button.cc |
index 1225e67f5057482bc8db59bf65543a12a7f14603..cd46faa4535f5cfb08e2439131ef1fcd25a1a558 100644 |
--- a/ui/views/controls/button/menu_button.cc |
+++ b/ui/views/controls/button/menu_button.cc |
@@ -18,6 +18,7 @@ |
#include "ui/gfx/text_constants.h" |
#include "ui/resources/grit/ui_resources.h" |
#include "ui/strings/grit/ui_strings.h" |
+#include "ui/views/animation/ink_drop_delegate.h" |
#include "ui/views/controls/button/button.h" |
#include "ui/views/controls/button/menu_button_listener.h" |
#include "ui/views/mouse_constants.h" |
@@ -126,6 +127,9 @@ bool MenuButton::Activate() { |
// We don't set our state here. It's handled in the MenuController code or |
// by our click listener. |
+ InkDropDelegate* ink_drop_delegate = GetInkDropDelegate(); |
bruthig
2015/11/19 16:49:53
Would it make things easier if GetInkDropDelegate(
varkha
2015/11/19 23:34:35
Done. May remove InkDropAnimationControllerStub la
|
+ if (ink_drop_delegate) |
+ ink_drop_delegate->OnAction(InkDropState::QUICK_ACTION); |
listener_->OnMenuButtonClicked(this, menu_position); |
if (destroyed) { |
@@ -145,12 +149,6 @@ bool MenuButton::Activate() { |
return true; |
} |
-void MenuButton::WillNotActivate() { |
- if (listener_) { |
- listener_->OnMenuButtonClickCanceled(this); |
- } |
-} |
- |
void MenuButton::OnPaint(gfx::Canvas* canvas) { |
LabelButton::OnPaint(canvas); |
@@ -179,13 +177,20 @@ const char* MenuButton::GetClassName() const { |
} |
bool MenuButton::OnMousePressed(const ui::MouseEvent& event) { |
+ if (event.IsOnlyLeftMouseButton()) { |
+ InkDropDelegate* ink_drop_delegate = GetInkDropDelegate(); |
+ if (ink_drop_delegate) |
+ ink_drop_delegate->OnAction(InkDropState::ACTION_PENDING); |
bruthig
2015/11/19 16:49:53
I don't think a MenuButton can know for certain th
varkha
2015/11/19 23:34:35
Done.
|
+ } |
+ |
if (request_focus_on_press()) |
RequestFocus(); |
if (state() != STATE_DISABLED && ShouldEnterPushedState(event) && |
HitTestPoint(event.location())) { |
TimeDelta delta = TimeTicks::Now() - menu_closed_time_; |
- if (delta.InMilliseconds() > kMinimumMsBetweenButtonClicks) |
+ if (delta.InMilliseconds() > kMinimumMsBetweenButtonClicks) { |
return Activate(); |
+ } |
} |
return true; |
} |
@@ -195,7 +200,9 @@ void MenuButton::OnMouseReleased(const ui::MouseEvent& event) { |
HitTestPoint(event.location()) && !InDrag()) { |
Activate(); |
} else { |
- WillNotActivate(); |
+ InkDropDelegate* ink_drop_delegate = GetInkDropDelegate(); |
+ if (ink_drop_delegate) |
+ ink_drop_delegate->OnAction(InkDropState::HIDDEN); |
bruthig
2015/11/19 16:49:53
Somewhat similar concerns here to the ones in OnMo
varkha
2015/11/19 23:34:35
Will need to rethink what happens in asynchronous
|
LabelButton::OnMouseReleased(event); |
} |
} |