Index: ui/touch_selection/touch_handle.cc |
diff --git a/ui/touch_selection/touch_handle.cc b/ui/touch_selection/touch_handle.cc |
index cea93885f51582696204a4f49a0071f65fbe4bdb..e2faff1f382cf4b85ea2892dbb1f4e7965ed03ad 100644 |
--- a/ui/touch_selection/touch_handle.cc |
+++ b/ui/touch_selection/touch_handle.cc |
@@ -167,24 +167,19 @@ bool TouchHandle::WillHandleTouchEvent(const MotionEvent& event) { |
return false; |
} |
touch_down_position_ = touch_point; |
- touch_to_focus_offset_ = position_ - touch_down_position_; |
+ touch_drag_offset_ = position_ - touch_down_position_; |
touch_down_time_ = event.GetEventTime(); |
BeginDrag(); |
} break; |
case MotionEvent::ACTION_MOVE: { |
gfx::PointF touch_move_position(event.GetX(), event.GetY()); |
- if (is_drag_within_tap_region_) { |
- const float tap_slop = client_->GetTapSlop(); |
- is_drag_within_tap_region_ = |
- (touch_move_position - touch_down_position_).LengthSquared() < |
- tap_slop * tap_slop; |
- } |
+ is_drag_within_tap_region_ &= |
+ client_->IsWithinTapSlop(touch_down_position_ - touch_move_position); |
// Note that we signal drag update even if we're inside the tap region, |
// as there are cases where characters are narrower than the slop length. |
- client_->OnHandleDragUpdate(*this, |
- touch_move_position + touch_to_focus_offset_); |
+ client_->OnDragUpdate(*this, touch_move_position + touch_drag_offset_); |
} break; |
case MotionEvent::ACTION_UP: { |
@@ -207,6 +202,10 @@ bool TouchHandle::WillHandleTouchEvent(const MotionEvent& event) { |
return true; |
} |
+bool TouchHandle::IsActive() const { |
+ return is_dragging_; |
+} |
+ |
bool TouchHandle::Animate(base::TimeTicks frame_time) { |
if (fade_end_time_ == base::TimeTicks()) |
return false; |
@@ -242,7 +241,7 @@ void TouchHandle::BeginDrag() { |
EndFade(); |
is_dragging_ = true; |
is_drag_within_tap_region_ = true; |
- client_->OnHandleDragBegin(*this); |
+ client_->OnDragBegin(*this, position()); |
} |
void TouchHandle::EndDrag() { |
@@ -252,7 +251,7 @@ void TouchHandle::EndDrag() { |
is_dragging_ = false; |
is_drag_within_tap_region_ = false; |
- client_->OnHandleDragEnd(*this); |
+ client_->OnDragEnd(*this); |
if (deferred_orientation_ != TouchHandleOrientation::UNDEFINED) { |
TouchHandleOrientation deferred_orientation = deferred_orientation_; |