summaryrefslogtreecommitdiffstats
path: root/ui/keyboard/keyboard_controller_proxy.cc
diff options
context:
space:
mode:
authorkevers@chromium.org <kevers@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2014-05-13 14:44:23 +0000
committerkevers@chromium.org <kevers@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2014-05-13 14:44:23 +0000
commit2082d7d6d6bfea09172e21089abca21c73d317f3 (patch)
tree3f78a39f902f359afe1dace444cf7e643556884d /ui/keyboard/keyboard_controller_proxy.cc
parent8f3215e30b1223866710145d05fe29ba5863a34b (diff)
downloadchromium_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.cc11
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() {