Index: content/renderer/render_view_impl.cc |
diff --git a/content/renderer/render_view_impl.cc b/content/renderer/render_view_impl.cc |
index debf4ecb7485994fd60f9e86e834b489e6c79f6b..522706003158c746fb5b6cc6e644cc3a446dace5 100644 |
--- a/content/renderer/render_view_impl.cc |
+++ b/content/renderer/render_view_impl.cc |
@@ -1731,6 +1731,8 @@ void RenderViewImpl::OnSetName(const std::string& name) { |
void RenderViewImpl::OnSetEditableSelectionOffsets(int start, int end) { |
base::AutoReset<bool> handling_select_range(&handling_select_range_, true); |
+ if (!ShouldHandleImeEvent()) |
+ return; |
ImeEventGuard guard(this); |
webview()->setEditableSelectionOffsets(start, end); |
} |
@@ -1738,14 +1740,14 @@ void RenderViewImpl::OnSetEditableSelectionOffsets(int start, int end) { |
void RenderViewImpl::OnSetCompositionFromExistingText( |
int start, int end, |
const std::vector<WebKit::WebCompositionUnderline>& underlines) { |
- if (!webview()) |
+ if (!ShouldHandleImeEvent()) |
return; |
ImeEventGuard guard(this); |
webview()->setCompositionFromExistingText(start, end, underlines); |
} |
void RenderViewImpl::OnExtendSelectionAndDelete(int before, int after) { |
- if (!webview()) |
+ if (!ShouldHandleImeEvent()) |
return; |
ImeEventGuard guard(this); |
webview()->extendSelectionAndDelete(before, after); |
@@ -2365,7 +2367,7 @@ void RenderViewImpl::didChangeSelection(bool is_empty_selection) { |
SyncSelectionIfRequired(); |
UpdateTextInputType(); |
#if defined(OS_ANDROID) |
- UpdateTextInputState(DO_NOT_SHOW_IME); |
+ UpdateTextInputState(DO_NOT_SHOW_IME, SEND_IME_ACK); |
#endif |
} |