Index: ui/platform_window/android/platform_window_android.cc |
diff --git a/ui/platform_window/android/platform_window_android.cc b/ui/platform_window/android/platform_window_android.cc |
index 5101948f9b6a685ebaa5bd07a32139816e77cc9a..18b6bb078b7d340d62fbd71f36cd76cf3836afec 100644 |
--- a/ui/platform_window/android/platform_window_android.cc |
+++ b/ui/platform_window/android/platform_window_android.cc |
@@ -9,6 +9,7 @@ |
#include "base/android/jni_android.h" |
#include "jni/PlatformWindowAndroid_jni.h" |
+#include "ui/base/ime/input_method.h" |
#include "ui/events/event.h" |
#include "ui/events/keycodes/keyboard_code_conversion_android.h" |
#include "ui/gfx/geometry/point.h" |
@@ -85,6 +86,7 @@ void PlatformWindowAndroid::SurfaceCreated(JNIEnv* env, |
window_ = ANativeWindow_fromSurface(env, jsurface); |
} |
delegate_->OnAcceleratedWidgetAvailable(window_, device_pixel_ratio); |
+ platform_ime_controller_.SetInputMethod(delegate_->GetInputMethod2()); |
} |
void PlatformWindowAndroid::SurfaceDestroyed(JNIEnv* env, jobject obj) { |
@@ -138,11 +140,16 @@ bool PlatformWindowAndroid::KeyEvent(JNIEnv* env, |
ui::KeyEvent char_event(unicode_character, |
ui::KeyboardCodeFromAndroidKeyCode(key_code), 0); |
char_event.set_platform_keycode(key_code); |
+ platform_ime_controller_.GetInputMethod()->DispatchKeyEvent(&char_event); |
delegate_->DispatchEvent(&char_event); |
} |
return true; |
} |
+void PlatformWindowAndroid::FocusChanged(JNIEnv* env, jobject obj, bool gained_focus) { |
+ delegate_->OnActivationChanged(gained_focus); |
+} |
+ |
void PlatformWindowAndroid::ReleaseWindow() { |
ANativeWindow_release(window_); |
window_ = NULL; |