Index: ui/keyboard/keyboard_controller.cc |
diff --git a/ui/keyboard/keyboard_controller.cc b/ui/keyboard/keyboard_controller.cc |
index 34d5a68310f526f2313b1caaed8758b1c716ad7f..2bb91e4b6325040e91c1902b1fe217dda88a9189 100644 |
--- a/ui/keyboard/keyboard_controller.cc |
+++ b/ui/keyboard/keyboard_controller.cc |
@@ -245,6 +245,7 @@ KeyboardController::KeyboardController(KeyboardControllerProxy* proxy) |
weak_factory_(this) { |
CHECK(proxy); |
input_method_ = proxy_->GetInputMethod(); |
+ input_method_->SetSupportsOnScreenKeyboard(true); |
input_method_->AddObserver(this); |
window_bounds_observer_.reset(new WindowBoundsChangeObserver()); |
} |
@@ -252,8 +253,10 @@ KeyboardController::KeyboardController(KeyboardControllerProxy* proxy) |
KeyboardController::~KeyboardController() { |
if (container_) |
container_->RemoveObserver(this); |
- if (input_method_) |
+ if (input_method_) { |
input_method_->RemoveObserver(this); |
+ input_method_->SetSupportsOnScreenKeyboard(false); |
+ } |
ResetWindowInsets(); |
} |
@@ -432,6 +435,8 @@ void KeyboardController::OnShowImeIfNeeded() { |
ShowKeyboardInternal(); |
} |
+void KeyboardController::OnKeyboardBoundsUnchanged() {} |
+ |
bool KeyboardController::ShouldEnableInsets(aura::Window* window) { |
aura::Window *keyboard_window = proxy_->GetKeyboardWindow(); |
return (keyboard_window->GetRootWindow() == window->GetRootWindow() && |
@@ -478,6 +483,7 @@ void KeyboardController::ShowKeyboardInternal() { |
proxy_->ReloadKeyboardIfNeeded(); |
if (keyboard_visible_) { |
+ proxy_->GetInputMethod()->NotifyKeyboardBoundsUnchanged(); |
return; |
} else if (proxy_->GetKeyboardWindow()->bounds().height() == 0) { |
show_on_resize_ = true; |