Index: content/renderer/render_view_impl.cc |
diff --git a/content/renderer/render_view_impl.cc b/content/renderer/render_view_impl.cc |
index d2a93bfcdf8e53c577eb150735cbf6ec26261aac..60dd1438fbbd78fb980ea3bf8fa2357f04f15598 100644 |
--- a/content/renderer/render_view_impl.cc |
+++ b/content/renderer/render_view_impl.cc |
@@ -1726,6 +1726,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 (!RenderWidget::ShouldHandleImeEvent()) |
+ return; |
ImeEventGuard guard(this); |
webview()->setEditableSelectionOffsets(start, end); |
} |
@@ -1733,14 +1735,14 @@ void RenderViewImpl::OnSetEditableSelectionOffsets(int start, int end) { |
void RenderViewImpl::OnSetCompositionFromExistingText( |
int start, int end, |
const std::vector<WebKit::WebCompositionUnderline>& underlines) { |
- if (!webview()) |
+ if (!RenderWidget::ShouldHandleImeEvent()) |
aurimas (slooooooooow)
2013/07/09 14:34:03
Do you need to specify RenderWidget:: even though
nyquist
2013/07/12 05:55:24
Done.
|
return; |
ImeEventGuard guard(this); |
webview()->setCompositionFromExistingText(start, end, underlines); |
} |
void RenderViewImpl::OnExtendSelectionAndDelete(int before, int after) { |
- if (!webview()) |
+ if (!RenderWidget::ShouldHandleImeEvent()) |
return; |
ImeEventGuard guard(this); |
webview()->extendSelectionAndDelete(before, after); |
@@ -2339,8 +2341,14 @@ void RenderViewImpl::didCancelCompositionOnSelectionChange() { |
} |
void RenderViewImpl::didChangeSelection(bool is_empty_selection) { |
- if (!handling_input_event_ && !handling_select_range_) |
+ if (!handling_input_event_ && !handling_select_range_) { |
+#if defined(OS_ANDROID) |
+ if (!RenderWidget::has_ordered_ime_processing()) |
+ return; |
+#else |
return; |
+#endif |
+ } |
if (is_empty_selection) |
selection_text_.clear(); |