| Index: content/renderer/render_view_impl.cc
|
| diff --git a/content/renderer/render_view_impl.cc b/content/renderer/render_view_impl.cc
|
| index 70c45430c6eb1d7d377704cb66d642e9e6187c3d..b7b96c52850fbe0ddf7e2e8c6e31071dab266bfe 100644
|
| --- a/content/renderer/render_view_impl.cc
|
| +++ b/content/renderer/render_view_impl.cc
|
| @@ -1046,6 +1046,8 @@ bool RenderViewImpl::OnMessageReceived(const IPC::Message& message) {
|
| IPC_MESSAGE_HANDLER(ViewMsg_FindMatchRects, OnFindMatchRects)
|
| IPC_MESSAGE_HANDLER(ViewMsg_SelectPopupMenuItems, OnSelectPopupMenuItems)
|
| IPC_MESSAGE_HANDLER_DELAY_REPLY(ViewMsg_SynchronousFind, OnSynchronousFind)
|
| + IPC_MESSAGE_HANDLER(ViewMsg_UndoScrollFocusedEditableNodeIntoView,
|
| + OnUndoScrollFocusedEditableNodeIntoRect)
|
| #elif defined(OS_MACOSX)
|
| IPC_MESSAGE_HANDLER(ViewMsg_CopyToFindPboard, OnCopyToFindPboard)
|
| IPC_MESSAGE_HANDLER(ViewMsg_PluginImeCompositionCompleted,
|
| @@ -1472,11 +1474,21 @@ void RenderViewImpl::OnScrollFocusedEditableNodeIntoRect(
|
| const gfx::Rect& rect) {
|
| WebKit::WebNode node = GetFocusedNode();
|
| if (!node.isNull()) {
|
| - if (IsEditableNode(node))
|
| + if (IsEditableNode(node)) {
|
| + webview()->saveScrollAndScaleState();
|
| webview()->scrollFocusedNodeIntoRect(rect);
|
| + }
|
| }
|
| }
|
|
|
| +#if defined(OS_ANDROID)
|
| +void RenderViewImpl::OnUndoScrollFocusedEditableNodeIntoRect() {
|
| + const WebNode node = GetFocusedNode();
|
| + if (!node.isNull() && IsEditableNode(node))
|
| + webview()->restoreScrollAndScaleState();
|
| +}
|
| +#endif
|
| +
|
| ///////////////////////////////////////////////////////////////////////////////
|
|
|
| // Tell the embedding application that the URL of the active page has changed
|
|
|