Chromium Code Reviews| Index: content/renderer/render_view_impl.cc |
| diff --git a/content/renderer/render_view_impl.cc b/content/renderer/render_view_impl.cc |
| index b194b1d6f1ce06fdbf6098b3ac3bb8d4f59ebff6..71f4d749df0dc3f2d2ca234b0aa315053970f1cf 100644 |
| --- a/content/renderer/render_view_impl.cc |
| +++ b/content/renderer/render_view_impl.cc |
| @@ -1354,6 +1354,8 @@ bool RenderViewImpl::OnMessageReceived(const IPC::Message& message) { |
| OnReleaseDisambiguationPopupBitmap) |
| IPC_MESSAGE_HANDLER(ViewMsg_ForceRedraw, OnForceRedraw) |
| IPC_MESSAGE_HANDLER(ViewMsg_SelectWordAroundCaret, OnSelectWordAroundCaret) |
| + IPC_MESSAGE_HANDLER(ViewMsg_MoveSelectionByCharacterOffset, |
| + OnMoveSelectionByCharacterOffset) |
| #if defined(OS_ANDROID) |
| IPC_MESSAGE_HANDLER(InputMsg_ActivateNearestFindResult, |
| OnActivateNearestFindResult) |
| @@ -1390,6 +1392,25 @@ void RenderViewImpl::OnSelectWordAroundCaret() { |
| handling_input_event_ = false; |
| } |
| +void RenderViewImpl::OnMoveSelectionByCharacterOffset(int start_adjust, |
| + int end_adjust) { |
| + if (!webview()) |
| + return; |
| + |
| + handling_input_event_ = true; |
| + size_t start, length; |
| + if (webview()->caretOrSelectionRange(&start, &length)) { |
| + start += start_adjust; |
| + length += end_adjust - start_adjust; |
|
David Trainor- moved to gerrit
2015/06/25 00:34:55
Do some checks on this stuff to make sure these va
|
| + WebLocalFrame* web_local_frame = |
| + webview()->focusedFrame()->toWebLocalFrame(); |
| + web_local_frame->selectRange(WebRange::fromDocumentRange(web_local_frame, |
| + start, |
| + length)); |
| + } |
| + handling_input_event_ = false; |
| +} |
| + |
| void RenderViewImpl::OnCopyImageAt(int x, int y) { |
| webview()->copyImageAt(WebPoint(x, y)); |
| } |