Chromium Code Reviews| 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); |