Index: chrome/browser/ui/touch/frame/touch_browser_frame_view.cc |
diff --git a/chrome/browser/ui/touch/frame/touch_browser_frame_view.cc b/chrome/browser/ui/touch/frame/touch_browser_frame_view.cc |
index d877ce1e7d9caaaddd15e5630fbed90a17e0a955..c2c7e3818be37180c24b68484faba0e0c08f060e 100644 |
--- a/chrome/browser/ui/touch/frame/touch_browser_frame_view.cc |
+++ b/chrome/browser/ui/touch/frame/touch_browser_frame_view.cc |
@@ -26,6 +26,11 @@ |
#include "views/controls/textfield/textfield.h" |
#include "views/focus/focus_manager.h" |
+#if defined(OS_CHROMEOS) |
+#include "chrome/browser/chromeos/cros/cros_library.h" |
+#include "chrome/browser/chromeos/input_method/virtual_keyboard_selector.h" |
+#endif |
+ |
namespace { |
const int kKeyboardHeight = 360; |
@@ -74,6 +79,12 @@ TouchBrowserFrameView::TouchBrowserFrameView(BrowserFrame* frame, |
animation_.reset(new ui::SlideAnimation(this)); |
animation_->SetTweenType(ui::Tween::LINEAR); |
animation_->SetSlideDuration(kKeyboardSlideDuration); |
+ |
+#if defined(OS_CHROMEOS) |
+ chromeos::InputMethodLibrary* library = |
+ chromeos::CrosLibrary::Get()->GetInputMethodLibrary(); |
+ library->AddVirtualKeyboardObserver(this); |
+#endif |
} |
TouchBrowserFrameView::~TouchBrowserFrameView() { |
@@ -325,3 +336,17 @@ void TouchBrowserFrameView::AnimationEnded(const ui::Animation* animation) { |
} |
SchedulePaint(); |
} |
+ |
+#if defined(OS_CHROMEOS) |
+void TouchBrowserFrameView::VirtualKeyboardChanged( |
+ chromeos::InputMethodLibrary* obj, |
+ const chromeos::input_method::VirtualKeyboard& virtual_keyboard, |
+ const std::string& virtual_keyboard_layout) { |
+ if (!keyboard_) |
+ return; |
+ |
+ const GURL& url = virtual_keyboard.GetURLForLayout(virtual_keyboard_layout); |
+ keyboard_->LoadURL(url); |
+ VLOG(1) << "VirtualKeyboardChanged: Switched to " << url.spec(); |
+} |
+#endif |