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()); |