Chromium Code Reviews| Index: content/renderer/render_widget.cc |
| diff --git a/content/renderer/render_widget.cc b/content/renderer/render_widget.cc |
| index dc1f14d8a538aa4db7acaddb94aac06061415076..b2eaeff87597db5e71a535d4a6d389cc30ced5fc 100644 |
| --- a/content/renderer/render_widget.cc |
| +++ b/content/renderer/render_widget.cc |
| @@ -1038,8 +1038,8 @@ void RenderWidget::UpdateTextInputState(ShowIme show_ime, |
| return; // Not considered as a text input field in WebKit/Chromium. |
| blink::WebTextInputInfo new_info; |
| - if (GetWebWidget()) |
| - new_info = GetWebWidget()->textInputInfo(); |
| + if (auto* controller = GetInputMethodController()) |
| + new_info = controller->textInputInfo(); |
| const ui::TextInputMode new_mode = |
| ConvertWebTextInputMode(new_info.inputMode); |
| @@ -1742,8 +1742,8 @@ ui::TextInputType RenderWidget::GetTextInputType() { |
| if (focused_pepper_plugin_) |
| return focused_pepper_plugin_->text_input_type(); |
| #endif |
| - if (GetWebWidget()) |
| - return ConvertWebTextInputType(GetWebWidget()->textInputType()); |
| + if (auto* controller = GetInputMethodController()) |
| + return ConvertWebTextInputType(controller->textInputType()); |
| return ui::TEXT_INPUT_TYPE_NONE; |
| } |
| @@ -2172,7 +2172,8 @@ void RenderWidget::didHandleGestureEvent( |
| UpdateTextInputState(ShowIme::IF_NEEDED, ChangeSource::FROM_NON_IME); |
| } else if (event.type == WebInputEvent::GestureLongPress) { |
| DCHECK(GetWebWidget()); |
| - if (GetWebWidget()->textInputInfo().value.isEmpty()) |
| + blink::WebInputMethodController* controller = GetInputMethodController(); |
| + if (controller && controller->textInputInfo().value.isEmpty()) |
|
Charlie Reis
2016/11/23 23:35:09
Is this right? This looks like it's hiding the IM
EhsanK
2016/11/24 02:27:45
Yes. Apparently, this is because we should show a
|
| UpdateTextInputState(ShowIme::HIDE_IME, ChangeSource::FROM_NON_IME); |
| else |
| UpdateTextInputState(ShowIme::IF_NEEDED, ChangeSource::FROM_NON_IME); |