| Index: content/browser/renderer_host/render_widget_host_view_aura.cc
|
| diff --git a/content/browser/renderer_host/render_widget_host_view_aura.cc b/content/browser/renderer_host/render_widget_host_view_aura.cc
|
| index 3362aecf01defdbf2d288f7b99bfb11d20ade97f..c76476bafaf34ff41134454ee4d6a03c46b13bff 100644
|
| --- a/content/browser/renderer_host/render_widget_host_view_aura.cc
|
| +++ b/content/browser/renderer_host/render_widget_host_view_aura.cc
|
| @@ -468,6 +468,7 @@ RenderWidgetHostViewAura::RenderWidgetHostViewAura(RenderWidgetHost* host,
|
| set_focus_on_mouse_down_or_key_event_(false),
|
| device_scale_factor_(0.0f),
|
| disable_input_event_router_for_testing_(false),
|
| + last_active_widget_(nullptr),
|
| weak_ptr_factory_(this) {
|
| if (!is_guest_view_hack_)
|
| host_->SetView(this);
|
| @@ -2994,24 +2995,24 @@ void RenderWidgetHostViewAura::OnUpdateTextInputStateCalled(
|
| GetInputMethod()->OnTextInputTypeChanged(this);
|
|
|
| const TextInputState* state = text_input_manager_->GetTextInputState();
|
| -
|
| if (state && state->show_ime_if_needed &&
|
| state->type != ui::TEXT_INPUT_TYPE_NONE) {
|
| GetInputMethod()->ShowImeIfNeeded();
|
| -
|
| // Start monitoring the composition information if the focused node is
|
| // editable.
|
| - host_->Send(new InputMsg_RequestCompositionUpdate(
|
| - host_->GetRoutingID(),
|
| - false /* immediate request */,
|
| + last_active_widget_ = text_input_manager_->GetActiveWidget();
|
| + last_active_widget_->Send(new InputMsg_RequestCompositionUpdate(
|
| + last_active_widget_->GetRoutingID(), false /* immediate request */,
|
| true /* monitor request */));
|
| } else {
|
| // Stop monitoring the composition information if the focused node is not
|
| // editable.
|
| - host_->Send(new InputMsg_RequestCompositionUpdate(
|
| - host_->GetRoutingID(),
|
| - false /* immediate request */,
|
| - false /* monitor request */));
|
| + if (last_active_widget_) {
|
| + last_active_widget_->Send(new InputMsg_RequestCompositionUpdate(
|
| + last_active_widget_->GetRoutingID(), false /* immediate request */,
|
| + false /* monitor request */));
|
| + last_active_widget_ = nullptr;
|
| + }
|
| }
|
| }
|
|
|
|
|