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