| 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 1ee89dc3cab19f3bafa5a1016a544d2ab23fb974..1c613a1f4ab367e42e31465d6256b43f19cb59ff 100644
|
| --- a/content/browser/renderer_host/render_widget_host_view_android.cc
|
| +++ b/content/browser/renderer_host/render_widget_host_view_android.cc
|
| @@ -43,6 +43,7 @@
|
| #include "content/browser/android/overscroll_controller_android.h"
|
| #include "content/browser/android/selection_popup_controller.h"
|
| #include "content/browser/android/synchronous_compositor_host.h"
|
| +#include "content/browser/android/text_suggestion_host_android.h"
|
| #include "content/browser/compositor/surface_utils.h"
|
| #include "content/browser/devtools/render_frame_devtools_agent_host.h"
|
| #include "content/browser/gpu/browser_gpu_channel_host_factory.h"
|
| @@ -454,6 +455,7 @@ RenderWidgetHostViewAndroid::RenderWidgetHostViewAndroid(
|
| content_view_core_(nullptr),
|
| ime_adapter_android_(nullptr),
|
| selection_popup_controller_(nullptr),
|
| + text_suggestion_host_(nullptr),
|
| background_color_(SK_ColorWHITE),
|
| cached_background_color_(SK_ColorWHITE),
|
| view_(this),
|
| @@ -948,6 +950,11 @@ bool RenderWidgetHostViewAndroid::OnTouchEvent(
|
|
|
| ComputeEventLatencyOSTouchHistograms(event);
|
|
|
| + // Receiving any other touch event before the double-tap timeout expires
|
| + // cancels opening the spellcheck menu.
|
| + if (text_suggestion_host_)
|
| + text_suggestion_host_->StopSpellCheckMenuTimer();
|
| +
|
| // If a browser-based widget consumes the touch event, it's critical that
|
| // touch event interception be disabled. This avoids issues with
|
| // double-handling for embedder-detected gestures like side swipe.
|
| @@ -1047,6 +1054,8 @@ void RenderWidgetHostViewAndroid::FocusedNodeChanged(
|
| const gfx::Rect& node_bounds_in_screen) {
|
| if (ime_adapter_android_)
|
| ime_adapter_android_->FocusedNodeChanged(is_editable_node);
|
| + if (text_suggestion_host_)
|
| + text_suggestion_host_->FocusedNodeChanged();
|
| }
|
|
|
| void RenderWidgetHostViewAndroid::RenderProcessGone(
|
| @@ -1800,6 +1809,11 @@ void RenderWidgetHostViewAndroid::SendKeyEvent(
|
| if (!target_host)
|
| return;
|
|
|
| + // Receiving a key event before the double-tap timeout expires cancels opening
|
| + // the spellcheck menu. If the suggestion menu is open, we close the menu.
|
| + if (text_suggestion_host_)
|
| + text_suggestion_host_->OnKeyEvent();
|
| +
|
| ui::LatencyInfo latency_info;
|
| if (event.GetType() == blink::WebInputEvent::kRawKeyDown ||
|
| event.GetType() == blink::WebInputEvent::kChar) {
|
|
|