| 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..e9e72d85b80c3feb788d8e9fa485054b8e7d7a25 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();
|
| + if (ink_drop_delegate)
|
| + ink_drop_delegate->OnActionQuick();
|
| listener_->OnMenuButtonClicked(this, menu_position);
|
|
|
| if (destroyed) {
|
| @@ -148,6 +152,9 @@ bool MenuButton::Activate() {
|
| void MenuButton::WillNotActivate() {
|
| if (listener_) {
|
| listener_->OnMenuButtonClickCanceled(this);
|
| + InkDropDelegate* ink_drop_delegate = GetInkDropDelegate();
|
| + if (ink_drop_delegate)
|
| + ink_drop_delegate->OnActionComplete();
|
| }
|
| }
|
|
|
| @@ -179,13 +186,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->OnActionPending(event);
|
| + }
|
| +
|
| 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;
|
| }
|
|
|