Index: ui/views/touchui/touch_selection_controller_impl.cc |
diff --git a/ui/views/touchui/touch_selection_controller_impl.cc b/ui/views/touchui/touch_selection_controller_impl.cc |
index 6f78c968b8ce49fea1b5df22d8d41d27a1a6c012..c6bb08781de99d405a69ac3427d5cab4cb6f3991 100644 |
--- a/ui/views/touchui/touch_selection_controller_impl.cc |
+++ b/ui/views/touchui/touch_selection_controller_impl.cc |
@@ -245,6 +245,10 @@ void TouchSelectionControllerImpl::SelectionChanged() { |
} |
} |
+bool TouchSelectionControllerImpl::IsHandleDragInProgress() { |
+ return !!dragging_handle_; |
+} |
+ |
void TouchSelectionControllerImpl::SetDraggingHandle( |
EditingHandleView* handle) { |
dragging_handle_ = handle; |
@@ -261,10 +265,12 @@ void TouchSelectionControllerImpl::SelectionHandleDragged( |
DCHECK(dragging_handle_); |
+ gfx::Point offset_drag_pos(drag_pos.x(), |
+ drag_pos.y() - dragging_handle_->cursor_height() / 2 - |
+ 2 * kSelectionHandleRadius); |
+ ConvertPointToClientView(dragging_handle_, &offset_drag_pos); |
if (dragging_handle_ == cursor_handle_.get()) { |
- gfx::Point p(drag_pos.x() + kSelectionHandleRadius, drag_pos.y()); |
- ConvertPointToClientView(dragging_handle_, &p); |
- client_view_->MoveCaretTo(p); |
+ client_view_->MoveCaretTo(offset_drag_pos); |
return; |
} |
@@ -274,16 +280,13 @@ void TouchSelectionControllerImpl::SelectionHandleDragged( |
fixed_handle = selection_handle_2_.get(); |
// Find selection end points in client_view's coordinate system. |
- gfx::Point p1(drag_pos.x() + kSelectionHandleRadius, drag_pos.y()); |
- ConvertPointToClientView(dragging_handle_, &p1); |
- |
gfx::Point p2(kSelectionHandleRadius, fixed_handle->cursor_height() / 2); |
ConvertPointToClientView(fixed_handle, &p2); |
// Instruct client_view to select the region between p1 and p2. The position |
// of |fixed_handle| is the start and that of |dragging_handle| is the end |
// of selection. |
- client_view_->SelectRect(p2, p1); |
+ client_view_->SelectRect(p2, offset_drag_pos); |
} |
void TouchSelectionControllerImpl::ConvertPointToClientView( |