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..dc07d0ec8b83c406228aab955550a9220b9c0e5f 100644 |
--- a/ui/keyboard/keyboard_controller_proxy.cc |
+++ b/ui/keyboard/keyboard_controller_proxy.cc |
@@ -71,6 +71,24 @@ 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); |
+ // Records the keyboard new height. So that GetHitTestMask() can set the |
+ // same keyboard bounds as the hit test mask. |
kevers
2013/12/04 15:18:28
Nit: Obsolete comment. Please remove.
Shu Chen
2013/12/05 05:01:39
Done.
|
+ proxy_->set_resizing_from_contents(true); |
+ keyboard->SetBounds(bounds); |
+ } |
+ |
// Overridden from content::WebContentsDelegate: |
virtual void RequestMediaAccessPermission(content::WebContents* web_contents, |
const content::MediaStreamRequest& request, |
@@ -94,7 +112,7 @@ class KeyboardContentsDelegate : public content::WebContentsDelegate, |
namespace keyboard { |
KeyboardControllerProxy::KeyboardControllerProxy() |
- : default_url_(kKeyboardWebUIURL) { |
+ : default_url_(kKeyboardWebUIURL), resizing_from_contents_(false) { |
} |
KeyboardControllerProxy::~KeyboardControllerProxy() { |
@@ -139,11 +157,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) { |