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

Unified Diff: content/renderer/render_widget.cc

Issue 393933004: Send the real key code in deleteSurroundingText (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: added tests Created 6 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
« no previous file with comments | « content/public/android/javatests/src/org/chromium/content/browser/input/AdapterInputConnectionTest.java ('k') | no next file » | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: content/renderer/render_widget.cc
diff --git a/content/renderer/render_widget.cc b/content/renderer/render_widget.cc
index 73ab00862d967b0b3e2574d512c08cb8397fe76c..15d382529e8106a0d76e9eb66de3dc94a432d75e 100644
--- a/content/renderer/render_widget.cc
+++ b/content/renderer/render_widget.cc
@@ -912,6 +912,23 @@ void RenderWidget::OnHandleInputEvent(const blink::WebInputEvent* input_event,
return;
base::AutoReset<WebInputEvent::Type> handling_event_type_resetter(
&handling_event_type_, input_event->type);
+#if defined(OS_ANDROID)
+ // On Android, when the delete key or forward delete key is pressed using IME,
+ // |AdapterInputConnection| generates input key events to make sure all JS
+ // listeners that monitor KeyUp and KeyDown events receive the proper key
+ // code. Since this input key event comes from IME, we need to set the
+ // IME event guard here to make sure it does not interfere with other IME
+ // events.
+ scoped_ptr<ImeEventGuard> ime_event_guard_maybe;
+ if (WebInputEvent::isKeyboardEventType(input_event->type)) {
+ const WebKeyboardEvent& key_event =
+ *static_cast<const WebKeyboardEvent*>(input_event);
+ if (key_event.nativeKeyCode == AKEYCODE_FORWARD_DEL ||
+ key_event.nativeKeyCode == AKEYCODE_DEL) {
+ ime_event_guard_maybe.reset(new ImeEventGuard(this));
+ }
+ }
+#endif
base::AutoReset<const ui::LatencyInfo*> resetter(&current_event_latency_info_,
&latency_info);
« no previous file with comments | « content/public/android/javatests/src/org/chromium/content/browser/input/AdapterInputConnectionTest.java ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698