| Index: content/browser/renderer_host/render_widget_host_view_android.cc
|
| diff --git a/content/browser/renderer_host/render_widget_host_view_android.cc b/content/browser/renderer_host/render_widget_host_view_android.cc
|
| index 4a8319613f9b8b58b84cbab3ee8532bdd3299ec4..135b9e624b1d74bcb0d69467adec4d72848a888c 100644
|
| --- a/content/browser/renderer_host/render_widget_host_view_android.cc
|
| +++ b/content/browser/renderer_host/render_widget_host_view_android.cc
|
| @@ -77,6 +77,11 @@ void InsertSyncPointAndAckForCompositor(
|
| route_id, output_surface_id, renderer_host_id, ack);
|
| }
|
|
|
| +// Sends an acknowledgement to the renderer of a processed IME event.
|
| +void SendImeEventAck(RenderWidgetHostImpl* host) {
|
| + host->Send(new ViewMsg_ImeEventAck(host->GetRoutingID()));
|
| +}
|
| +
|
| } // anonymous namespace
|
|
|
| RenderWidgetHostViewAndroid::RenderWidgetHostViewAndroid(
|
| @@ -398,6 +403,13 @@ int RenderWidgetHostViewAndroid::GetNativeImeAdapter() {
|
|
|
| void RenderWidgetHostViewAndroid::OnTextInputStateChanged(
|
| const ViewHostMsg_TextInputState_Params& params) {
|
| +#if defined(OS_ANDROID)
|
| + if (params.require_ack) {
|
| + // Regardless of how we exit from this method, we must acknowledge that we
|
| + // processed the input state change.
|
| + base::ScopedClosureRunner ack_caller(base::Bind(&SendImeEventAck, host_));
|
| + }
|
| +#endif
|
| if (!IsShowing())
|
| return;
|
|
|
|
|