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 50a2f3359c8d38388aa2cbe2413e4dfef9eb3d31..a6d35b130480f66b3cf250b784d3d86c0b714ba9 100644 |
--- a/chrome/browser/ui/touch/frame/touch_browser_frame_view.cc |
+++ b/chrome/browser/ui/touch/frame/touch_browser_frame_view.cc |
@@ -65,6 +65,9 @@ TouchBrowserFrameView::TouchBrowserFrameView(BrowserFrame* frame, |
registrar_.Add(this, |
NotificationType::TAB_CONTENTS_DESTROYED, |
NotificationService::AllSources()); |
+ registrar_.Add(this, |
+ NotificationType::HIDE_KEYBOARD_INVOKED, |
+ NotificationService::AllSources()); |
browser_view->browser()->tabstrip_model()->AddObserver(this); |
@@ -275,6 +278,14 @@ void TouchBrowserFrameView::Observe(NotificationType type, |
Source<TabContents>(source).ptr()->property_bag()); |
} else if (type == NotificationType::PREF_CHANGED) { |
OpaqueBrowserFrameView::Observe(type, source, details); |
+ } else if (type == NotificationType::HIDE_KEYBOARD_INVOKED) { |
+ TabContents* tab_contents = |
+ browser_view()->browser()->GetSelectedTabContents(); |
+ if (tab_contents) { |
+ GetFocusedStateAccessor()->SetProperty(tab_contents->property_bag(), |
+ false); |
+ } |
+ UpdateKeyboardAndLayout(false); |
} |
} |