Index: ui/views/controls/button/custom_button.cc |
diff --git a/ui/views/controls/button/custom_button.cc b/ui/views/controls/button/custom_button.cc |
index 50cffe9286fcc6ac39dfada288b17e2d92949d50..71e79559462e424762a3c0f0cea43fde3588373f 100644 |
--- a/ui/views/controls/button/custom_button.cc |
+++ b/ui/views/controls/button/custom_button.cc |
@@ -162,16 +162,18 @@ bool CustomButton::OnMousePressed(const ui::MouseEvent& event) { |
bool CustomButton::OnMouseDragged(const ui::MouseEvent& event) { |
if (state_ != STATE_DISABLED) { |
- bool should_enter_pushed = ShouldEnterPushedState(event); |
+ const bool should_enter_pushed = ShouldEnterPushedState(event); |
+ const bool should_show_pending = |
+ should_enter_pushed && notify_action_ == NOTIFY_ON_RELEASE && !InDrag(); |
if (HitTestPoint(event.location())) { |
SetState(should_enter_pushed ? STATE_PRESSED : STATE_HOVERED); |
- if (!InDrag() && should_enter_pushed && |
+ if (should_show_pending && |
bruthig
2016/06/20 14:44:33
Can you add/update some tests for this new logic?
mohsen
2016/06/21 06:33:23
Done.
|
ink_drop()->GetTargetInkDropState() == views::InkDropState::HIDDEN) { |
AnimateInkDrop(views::InkDropState::ACTION_PENDING); |
} |
} else { |
SetState(STATE_NORMAL); |
- if (!InDrag() && should_enter_pushed && |
+ if (should_show_pending && |
ink_drop()->GetTargetInkDropState() == |
views::InkDropState::ACTION_PENDING) { |
AnimateInkDrop(views::InkDropState::HIDDEN); |