Index: content/browser/renderer_host/input/touch_selection_controller.cc |
diff --git a/content/browser/renderer_host/input/touch_selection_controller.cc b/content/browser/renderer_host/input/touch_selection_controller.cc |
index e904e283ee0716401cea8556353b8eba048032d1..ee9c7fc899039f8b189db12675439ac20f521b3f 100644 |
--- a/content/browser/renderer_host/input/touch_selection_controller.cc |
+++ b/content/browser/renderer_host/input/touch_selection_controller.cc |
@@ -209,13 +209,23 @@ void TouchSelectionController::OnHandleDragBegin(const TouchHandle& handle) { |
return; |
} |
+ gfx::PointF fixed_handle_position; |
if (&handle == start_selection_handle_.get()) { |
- fixed_handle_position_ = |
+ fixed_handle_position = |
end_selection_handle_->position() + GetEndLineOffset(); |
} else { |
- fixed_handle_position_ = |
+ fixed_handle_position = |
start_selection_handle_->position() + GetStartLineOffset(); |
} |
+ |
+ // When moving the handle we want to move only the extent point. Before doing |
+ // so we must make sure that the base point is set correctly. |
+ gfx::Vector2dF line_offset = &handle == end_selection_handle_.get() |
jdduke (slow)
2014/10/15 15:46:07
This could might be more simply folded into the ab
christiank
2014/10/17 14:33:05
Good idea!
|
+ ? GetStartLineOffset() |
+ : GetEndLineOffset(); |
+ gfx::PointF handle_position = handle.position() + line_offset; |
+ client_->SelectBetweenCoordinates(fixed_handle_position, handle_position); |
christiank
2014/10/15 09:55:03
Instead of adding a new code path for swapping the
jdduke (slow)
2014/10/15 15:46:07
Ah, I think what you have is reasonable, maybe we
christiank
2014/10/17 14:33:05
I agree, I'll update the names.
|
+ |
client_->OnSelectionEvent(SELECTION_DRAG_STARTED, handle.position()); |
} |
@@ -230,7 +240,7 @@ void TouchSelectionController::OnHandleDragUpdate(const TouchHandle& handle, |
if (&handle == insertion_handle_.get()) { |
client_->MoveCaret(line_position); |
} else { |
- client_->SelectBetweenCoordinates(fixed_handle_position_, line_position); |
+ client_->MoveSelectionExtent(line_position); |
jdduke (slow)
2014/10/15 15:46:07
Could add a test (or update an existing test) in t
christiank
2014/10/17 14:33:05
Sure, will do!
|
} |
} |