diff options
author | kevers@chromium.org <kevers@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2014-05-13 14:44:23 +0000 |
---|---|---|
committer | kevers@chromium.org <kevers@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2014-05-13 14:44:23 +0000 |
commit | 2082d7d6d6bfea09172e21089abca21c73d317f3 (patch) | |
tree | 3f78a39f902f359afe1dace444cf7e643556884d /ui/keyboard/keyboard_controller_proxy.cc | |
parent | 8f3215e30b1223866710145d05fe29ba5863a34b (diff) | |
download | chromium_src-2082d7d6d6bfea09172e21089abca21c73d317f3.zip chromium_src-2082d7d6d6bfea09172e21089abca21c73d317f3.tar.gz chromium_src-2082d7d6d6bfea09172e21089abca21c73d317f3.tar.bz2 |
Fix calculation of usable area of screen when VK is shown.
First part of a 2-sided patch to fix scroll-into-view with VK overscroll.
BUG=370592
Review URL: https://codereview.chromium.org/276483002
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@270092 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'ui/keyboard/keyboard_controller_proxy.cc')
-rw-r--r-- | ui/keyboard/keyboard_controller_proxy.cc | 11 |
1 files changed, 11 insertions, 0 deletions
diff --git a/ui/keyboard/keyboard_controller_proxy.cc b/ui/keyboard/keyboard_controller_proxy.cc index 9ed1197..dec2b0f 100644 --- a/ui/keyboard/keyboard_controller_proxy.cc +++ b/ui/keyboard/keyboard_controller_proxy.cc @@ -15,6 +15,8 @@ #include "content/public/common/bindings_policy.h" #include "ui/aura/layout_manager.h" #include "ui/aura/window.h" +#include "ui/base/ime/input_method.h" +#include "ui/base/ime/text_input_client.h" #include "ui/keyboard/keyboard_constants.h" #include "ui/keyboard/keyboard_switches.h" #include "ui/keyboard/keyboard_util.h" @@ -144,6 +146,15 @@ void KeyboardControllerProxy::SetUpdateInputType(ui::TextInputType type) { } void KeyboardControllerProxy::EnsureCaretInWorkArea() { + if (GetInputMethod()->GetTextInputClient()) { + aura::Window* keyboard_window = GetKeyboardWindow(); + aura::Window* root_window = keyboard_window->GetRootWindow(); + gfx::Rect available_bounds = root_window->bounds(); + gfx::Rect keyboard_bounds = keyboard_window->bounds(); + available_bounds.set_height(available_bounds.height() - + keyboard_bounds.height()); + GetInputMethod()->GetTextInputClient()->EnsureCaretInRect(available_bounds); + } } void KeyboardControllerProxy::LoadSystemKeyboard() { |