Index: content/browser/renderer_host/render_view_host_impl.cc |
diff --git a/content/browser/renderer_host/render_view_host_impl.cc b/content/browser/renderer_host/render_view_host_impl.cc |
index ed5cc127b505814522cb614fb8d6a5090aa35340..3e5e25fca08b3f356a1be186a00de49308916aa1 100644 |
--- a/content/browser/renderer_host/render_view_host_impl.cc |
+++ b/content/browser/renderer_host/render_view_host_impl.cc |
@@ -832,7 +832,6 @@ bool RenderViewHostImpl::OnMessageReceived(const IPC::Message& msg) { |
IPC_MESSAGE_HANDLER(ViewHostMsg_ClosePage_ACK, OnClosePageACK) |
IPC_MESSAGE_HANDLER(ViewHostMsg_DidZoomURL, OnDidZoomURL) |
IPC_MESSAGE_HANDLER(ViewHostMsg_RunFileChooser, OnRunFileChooser) |
- IPC_MESSAGE_HANDLER(ViewHostMsg_FocusedNodeTouched, OnFocusedNodeTouched) |
// Have the super handle all other messages. |
IPC_MESSAGE_UNHANDLED( |
handled = RenderWidgetHostImpl::OnMessageReceived(msg)) |
@@ -1143,12 +1142,21 @@ void RenderViewHostImpl::OnTakeFocus(bool reverse) { |
view->TakeFocus(reverse); |
} |
-void RenderViewHostImpl::OnFocusedNodeChanged(bool is_editable_node) { |
+void RenderViewHostImpl::OnFocusedNodeChanged( |
+ bool is_editable_node, |
+ blink::WebInputEvent::Type causel_event_type) { |
is_focused_element_editable_ = is_editable_node; |
if (view_) |
view_->FocusedNodeChanged(is_editable_node); |
#if defined(OS_WIN) |
- if (!is_editable_node && virtual_keyboard_requested_) { |
+ if (causal_event_type == blink::WebInputEvent::GestureTap) { |
+ if (is_editable_node) { |
+ virtual_keyboard_requested_ = base::win::DisplayVirtualKeyboard(); |
+ } else { |
+ virtual_keyboard_requested_ = false; |
+ base::win::DismissVirtualKeyboard(); |
+ } |
+ } else if (!is_editable_node && virtual_keyboard_requested_) { |
virtual_keyboard_requested_ = false; |
BrowserThread::PostDelayedTask( |
BrowserThread::UI, FROM_HERE, |
@@ -1363,17 +1371,6 @@ void RenderViewHostImpl::OnRunFileChooser(const FileChooserParams& params) { |
delegate_->RunFileChooser(this, params); |
} |
-void RenderViewHostImpl::OnFocusedNodeTouched(bool editable) { |
-#if defined(OS_WIN) |
- if (editable) { |
- virtual_keyboard_requested_ = base::win::DisplayVirtualKeyboard(); |
- } else { |
- virtual_keyboard_requested_ = false; |
- base::win::DismissVirtualKeyboard(); |
- } |
-#endif |
-} |
- |
bool RenderViewHostImpl::CanAccessFilesOfPageState( |
const PageState& state) const { |
ChildProcessSecurityPolicyImpl* policy = |