Index: services/native_viewport/platform_viewport_android.cc |
diff --git a/services/native_viewport/platform_viewport_android.cc b/services/native_viewport/platform_viewport_android.cc |
index 8090625efd7963e3926c5b0392635ddfb1a42374..f3db992290fe04a8f438cd39c27074226c4577a1 100644 |
--- a/services/native_viewport/platform_viewport_android.cc |
+++ b/services/native_viewport/platform_viewport_android.cc |
@@ -11,6 +11,7 @@ |
#include "jni/PlatformViewportAndroid_jni.h" |
#include "mojo/converters/geometry/geometry_type_converters.h" |
#include "ui/events/event.h" |
+#include "ui/events/keycodes/keyboard_code_conversion_android.h" |
#include "ui/gfx/point.h" |
namespace native_viewport { |
@@ -115,6 +116,24 @@ bool PlatformViewportAndroid::TouchEvent(JNIEnv* env, jobject obj, |
return true; |
} |
+bool PlatformViewportAndroid::KeyEvent(JNIEnv* env, |
+ jobject obj, |
+ bool pressed, |
+ jint key_code, |
+ jint unicode_character) { |
+ ui::KeyEvent event(pressed ? ui::ET_KEY_PRESSED : ui::ET_KEY_RELEASED, |
+ ui::KeyboardCodeFromAndroidKeyCode(key_code), 0); |
+ event.set_platform_keycode(key_code); |
+ delegate_->OnEvent(&event); |
+ if (pressed && unicode_character) { |
+ ui::KeyEvent char_event(unicode_character, |
+ ui::KeyboardCodeFromAndroidKeyCode(key_code), 0); |
+ char_event.set_platform_keycode(key_code); |
+ delegate_->OnEvent(&char_event); |
+ } |
+ return true; |
+} |
+ |
//////////////////////////////////////////////////////////////////////////////// |
// PlatformViewportAndroid, PlatformViewport implementation: |