| Index: ui/keyboard/keyboard_layout_manager.cc
|
| diff --git a/ui/keyboard/keyboard_layout_manager.cc b/ui/keyboard/keyboard_layout_manager.cc
|
| index d7faf0fa7ab27cf20608019ccb880abe80b4e215..02b532a9187923882312c340264bdcbb813c3d5d 100644
|
| --- a/ui/keyboard/keyboard_layout_manager.cc
|
| +++ b/ui/keyboard/keyboard_layout_manager.cc
|
| @@ -49,13 +49,13 @@ void KeyboardLayoutManager::SetChildBounds(aura::Window* child,
|
|
|
| gfx::Rect old_bounds = child->bounds();
|
| SetChildBoundsDirect(child, requested_bounds);
|
| - if (old_bounds.height() == 0 && child->bounds().height() != 0) {
|
| - // The window height is set to 0 initially. If the height of |old_bounds| is
|
| - // 0 and the new bounds is not 0, it probably means window.resizeTo is
|
| - // called to set the window height. We should try to show keyboard again in
|
| - // case the show keyboard request is called before the height is set.
|
| + if (old_bounds.height() == 0 && child->bounds().height() != 0 &&
|
| + controller_->show_on_resize()) {
|
| + // The window height is set to 0 initially or before switch to an IME in a
|
| + // different extension. Virtual keyboard window may wait for this bounds
|
| + // change to correctly animate in.
|
| controller_->ShowKeyboard(false);
|
| - } else {
|
| + } else if (controller_->keyboard_visible()) {
|
| controller_->NotifyKeyboardBoundsChanging(requested_bounds);
|
| }
|
| }
|
|
|