Chromium Code Reviews| Index: content/browser/renderer_host/input/stylus_text_selector.cc |
| diff --git a/content/browser/renderer_host/input/stylus_text_selector.cc b/content/browser/renderer_host/input/stylus_text_selector.cc |
| index a9bff878be73b352625bd65cd2eac7d23b2b8c31..1e91896564879c0710aac77aae23246dff7c7ce0 100644 |
| --- a/content/browser/renderer_host/input/stylus_text_selector.cc |
| +++ b/content/browser/renderer_host/input/stylus_text_selector.cc |
| @@ -39,8 +39,7 @@ StylusTextSelector::StylusTextSelector(StylusTextSelectorClient* client) |
| : client_(client), |
| text_selection_triggered_(false), |
| secondary_button_pressed_(false), |
| - dragging_(false), |
| - dragged_(false), |
| + drag_state_(NO_DRAG), |
| anchor_x_(0.0f), |
| anchor_y_(0.0f) { |
| DCHECK(client); |
| @@ -63,15 +62,17 @@ bool StylusTextSelector::OnTouchEvent(const MotionEvent& event) { |
| switch (event.GetAction()) { |
| case MotionEvent::ACTION_DOWN: |
| - dragging_ = false; |
| - dragged_ = false; |
| + drag_state_ = NO_DRAG; |
| anchor_x_ = event.GetX(); |
| anchor_y_ = event.GetY(); |
| break; |
| case MotionEvent::ACTION_MOVE: |
| if (!secondary_button_pressed_) { |
| - dragging_ = false; |
| + drag_state_ = |
|
aelias_OOO_until_Jul13
2017/05/17 20:54:23
Clearer to write this as:
if (drag_state_ == DRAG
AKVT
2017/05/18 10:12:19
Done.
|
| + (drag_state_ == DRAGGING_IN_PROGRESS || drag_state_ == WAS_DRAGGED) |
| + ? WAS_DRAGGED |
| + : NO_DRAG; |
| anchor_x_ = event.GetX(); |
| anchor_y_ = event.GetY(); |
| } |
| @@ -79,10 +80,9 @@ bool StylusTextSelector::OnTouchEvent(const MotionEvent& event) { |
| case MotionEvent::ACTION_UP: |
| case MotionEvent::ACTION_CANCEL: |
| - if (dragged_) |
| + if (drag_state_ == DRAGGING_IN_PROGRESS || drag_state_ == WAS_DRAGGED) |
| client_->OnStylusSelectEnd(); |
| - dragged_ = false; |
| - dragging_ = false; |
| + drag_state_ = NO_DRAG; |
| break; |
| case MotionEvent::ACTION_POINTER_UP: |
| @@ -110,7 +110,7 @@ bool StylusTextSelector::OnTouchEvent(const MotionEvent& event) { |
| bool StylusTextSelector::OnSingleTapUp(const MotionEvent& e, int tap_count) { |
| DCHECK(text_selection_triggered_); |
| - DCHECK(!dragging_); |
| + DCHECK(drag_state_ == NO_DRAG); |
|
aelias_OOO_until_Jul13
2017/05/17 20:54:23
This isn't equivalent to the previous behavior, I
AKVT
2017/05/18 10:12:19
Done.
|
| client_->OnStylusSelectTap(e.GetEventTime(), e.GetX(), e.GetY()); |
| return true; |
| } |
| @@ -126,9 +126,8 @@ bool StylusTextSelector::OnScroll(const MotionEvent& e1, |
| if (!secondary_button_pressed_) |
| return true; |
| - if (!dragging_) { |
| - dragging_ = true; |
| - dragged_ = true; |
| + if (drag_state_ == NO_DRAG || drag_state_ == WAS_DRAGGED) { |
| + drag_state_ = DRAGGING_IN_PROGRESS; |
| client_->OnStylusSelectBegin(anchor_x_, anchor_y_, e2.GetX(), e2.GetY()); |
| } else { |
| client_->OnStylusSelectUpdate(e2.GetX(), e2.GetY()); |