Chromium Code Reviews| 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(); |