Index: ui/keyboard/keyboard_controller_proxy.cc |
diff --git a/ui/keyboard/keyboard_controller_proxy.cc b/ui/keyboard/keyboard_controller_proxy.cc |
index 2d1bb4b537b703a50a68aef536320e56cabbff35..b36b433ad28d8305db32ce3642b2cae09ccbafaf 100644 |
--- a/ui/keyboard/keyboard_controller_proxy.cc |
+++ b/ui/keyboard/keyboard_controller_proxy.cc |
@@ -71,6 +71,23 @@ class KeyboardContentsDelegate : public content::WebContentsDelegate, |
return source; |
} |
+ virtual bool IsPopupOrPanel( |
+ const content::WebContents* source) const OVERRIDE { |
+ return true; |
+ } |
+ |
+ virtual void MoveContents(content::WebContents* source, |
+ const gfx::Rect& pos) OVERRIDE { |
+ aura::Window* keyboard = proxy_->GetKeyboardWindow(); |
+ gfx::Rect bounds = keyboard->bounds(); |
+ int new_height = pos.height(); |
+ bounds.set_y(bounds.y() + bounds.height() - new_height); |
+ bounds.set_height(new_height); |
+ proxy_->set_resizing_from_contents(true); |
+ keyboard->SetBounds(bounds); |
+ proxy_->set_resizing_from_contents(false); |
+ } |
+ |
// Overridden from content::WebContentsDelegate: |
virtual void RequestMediaAccessPermission(content::WebContents* web_contents, |
const content::MediaStreamRequest& request, |
@@ -94,7 +111,7 @@ class KeyboardContentsDelegate : public content::WebContentsDelegate, |
namespace keyboard { |
KeyboardControllerProxy::KeyboardControllerProxy() |
- : default_url_(kKeyboardWebUIURL) { |
+ : default_url_(kKeyboardWebUIURL), resizing_from_contents_(false) { |
} |
KeyboardControllerProxy::~KeyboardControllerProxy() { |
@@ -139,11 +156,13 @@ aura::Window* KeyboardControllerProxy::GetKeyboardWindow() { |
} |
void KeyboardControllerProxy::ShowKeyboardContainer(aura::Window* container) { |
+ GetKeyboardWindow()->Show(); |
container->Show(); |
} |
void KeyboardControllerProxy::HideKeyboardContainer(aura::Window* container) { |
container->Hide(); |
+ GetKeyboardWindow()->Hide(); |
} |
void KeyboardControllerProxy::SetUpdateInputType(ui::TextInputType type) { |