Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(102)

Unified Diff: content/browser/renderer_host/render_widget_host_view_android.cc

Issue 2931443003: Add support for Android spellcheck menu in Chrome/WebViews (Closed)
Patch Set: Consolidate mContentView and mContainerView Created 3 years, 5 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
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) {

Powered by Google App Engine
This is Rietveld 408576698