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

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

Issue 1378583003: Unstrangle unhandled key event callback for webview (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: changed variable names and comments Created 5 years 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/ime_adapter_android.cc
diff --git a/content/browser/renderer_host/ime_adapter_android.cc b/content/browser/renderer_host/ime_adapter_android.cc
index d70d4969d2ed28d4e424fb372cd512d94019e2a7..9f6ab7ff337b211078ff711bfc6233c8e0bf848a 100644
--- a/content/browser/renderer_host/ime_adapter_android.cc
+++ b/content/browser/renderer_host/ime_adapter_android.cc
@@ -151,21 +151,16 @@ bool ImeAdapterAndroid::SendKeyEvent(
NativeWebKeyboardEvent event = NativeWebKeyboardEventFromKeyEvent(
env, original_key_event, action, modifiers,
time_ms, key_code, scan_code, is_system_key, unicode_char);
- bool key_down_text_insertion =
+ bool create_char_event =
event.type == blink::WebInputEvent::RawKeyDown && event.text[0];
- // If we are going to follow up with a synthetic Char event, then that's the
- // one we expect to test if it's handled or unhandled, so skip handling the
- // "real" event in the browser.
- event.skip_in_browser = key_down_text_insertion;
+ // Even when we don't consume this event, we should not propagate it to
+ // onUnhandledKeyEvent() because char event can still be consumed.
+ event.skip_in_browser = create_char_event;
rwhva_->SendKeyEvent(event);
- if (key_down_text_insertion) {
- // Send a Char event, but without an os_event since we don't want to
- // roundtrip back to java such synthetic event.
- NativeWebKeyboardEvent char_event(blink::WebInputEvent::Char, modifiers,
- time_ms / 1000.0, key_code, scan_code,
- unicode_char,
- is_system_key);
- char_event.skip_in_browser = key_down_text_insertion;
+ if (create_char_event) {
+ NativeWebKeyboardEvent char_event(
+ original_key_event, blink::WebInputEvent::Char, modifiers,
+ time_ms / 1000.0, key_code, scan_code, unicode_char, is_system_key);
rwhva_->SendKeyEvent(char_event);
}
return true;

Powered by Google App Engine
This is Rietveld 408576698