diff options
author | cjhopman@chromium.org <cjhopman@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2013-01-16 18:55:46 +0000 |
---|---|---|
committer | cjhopman@chromium.org <cjhopman@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2013-01-16 18:55:46 +0000 |
commit | 50ae2ff1ef5765dd1735bee360f0880373bd9735 (patch) | |
tree | 1cfe0baff71bc31373491be1816b451504404fc5 /content/renderer | |
parent | 4bd875313272c66c696d3a826d74eee8d1e13152 (diff) | |
download | chromium_src-50ae2ff1ef5765dd1735bee360f0880373bd9735.zip chromium_src-50ae2ff1ef5765dd1735bee360f0880373bd9735.tar.gz chromium_src-50ae2ff1ef5765dd1735bee360f0880373bd9735.tar.bz2 |
Merge 176454
> Add a new code/message path for moving an insertion handle
>
> On Android, we've been using selectRange for moving an insertion handle.
> However, we don't really want the behavior of selectRange (for example,
> dragging an insertion handle outside of a text box should not actual do
> a "selectRange" on the position outside of the text box). The behavior
> that we want has been added to WebKit as
> WebFrame::moveCaretSelectionTowardsWindowPoint.
>
> This change introduces the code/message path from the Browser side
> InsertionHandleController to WebKit similar to the current SelectRange
> path.
>
> BUG=165244,163979,165661
>
>
> Review URL: https://chromiumcodereview.appspot.com/11593011
TBR=cjhopman@chromium.org
Review URL: https://codereview.chromium.org/11962020
git-svn-id: svn://svn.chromium.org/chrome/branches/1364/src@177185 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'content/renderer')
-rw-r--r-- | content/renderer/render_view_impl.cc | 10 | ||||
-rw-r--r-- | content/renderer/render_view_impl.h | 1 |
2 files changed, 11 insertions, 0 deletions
diff --git a/content/renderer/render_view_impl.cc b/content/renderer/render_view_impl.cc index 21cbd77..02aa00f 100644 --- a/content/renderer/render_view_impl.cc +++ b/content/renderer/render_view_impl.cc @@ -948,6 +948,7 @@ bool RenderViewImpl::OnMessageReceived(const IPC::Message& message) { IPC_MESSAGE_HANDLER(ViewMsg_ExtendSelectionAndDelete, OnExtendSelectionAndDelete) IPC_MESSAGE_HANDLER(ViewMsg_SelectRange, OnSelectRange) + IPC_MESSAGE_HANDLER(ViewMsg_MoveCaret, OnMoveCaret) IPC_MESSAGE_HANDLER(ViewMsg_CopyImageAt, OnCopyImageAt) IPC_MESSAGE_HANDLER(ViewMsg_ExecuteEditCommand, OnExecuteEditCommand) IPC_MESSAGE_HANDLER(ViewMsg_Find, OnFind) @@ -1406,6 +1407,15 @@ void RenderViewImpl::OnSelectRange(const gfx::Point& start, handling_select_range_ = false; } +void RenderViewImpl::OnMoveCaret(const gfx::Point& point) { + if (!webview()) + return; + + Send(new ViewHostMsg_MoveCaret_ACK(routing_id_)); + + webview()->focusedFrame()->moveCaretSelectionTowardsWindowPoint(point); +} + void RenderViewImpl::OnSetHistoryLengthAndPrune(int history_length, int32 minimum_page_id) { DCHECK_GE(history_length, 0); diff --git a/content/renderer/render_view_impl.h b/content/renderer/render_view_impl.h index abe9b57cf..2780f67 100644 --- a/content/renderer/render_view_impl.h +++ b/content/renderer/render_view_impl.h @@ -982,6 +982,7 @@ class CONTENT_EXPORT RenderViewImpl bool notify_result); void OnSelectAll(); void OnSelectRange(const gfx::Point& start, const gfx::Point& end); + void OnMoveCaret(const gfx::Point& point); void OnSetAccessibilityMode(AccessibilityMode new_mode); void OnSetActive(bool active); void OnSetAltErrorPageURL(const GURL& gurl); |