Chromium Code Reviews| 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 545f31cc28923a2116a3dff889799778bdae21da..78bf1232ff7c5397ea393abad489871f3b88daa7 100644 |
| --- a/chrome/browser/ui/touch/frame/touch_browser_frame_view.cc |
| +++ b/chrome/browser/ui/touch/frame/touch_browser_frame_view.cc |
| @@ -38,6 +38,9 @@ TouchBrowserFrameView::TouchBrowserFrameView(BrowserFrame* frame, |
| } |
| TouchBrowserFrameView::~TouchBrowserFrameView() { |
| + if (focus_change_listener_.get()) { |
| + GetFocusManager()->RemoveFocusChangeListener(focus_change_listener_.get()); |
| + } |
| } |
| void TouchBrowserFrameView::Layout() { |
| @@ -59,6 +62,16 @@ int TouchBrowserFrameView::GetReservedHeight() const { |
| return 0; |
| } |
| +void TouchBrowserFrameView::ViewHierarchyChanged( |
| + bool is_add, View* parent, View* child) { |
|
rjkroege
2011/01/27 00:04:22
could be indented the other way probably?
varunjain
2011/01/27 00:19:34
Done.
|
| + OpaqueBrowserFrameView::ViewHierarchyChanged(is_add, parent, child); |
| + if (!focus_change_listener_.get()) { |
| + focus_change_listener_.reset(new TouchBrowserFocusChangeListener(this)); |
| + GetFocusManager()->AddFocusChangeListener(focus_change_listener_.get()); |
| + } |
| +} |
| + |
|
rjkroege
2011/01/27 00:04:22
extra blank
varunjain
2011/01/27 00:19:34
Done.
|
| + |
| /////////////////////////////////////////////////////////////////////////////// |
| // TouchBrowserFrameView, private: |
| @@ -118,3 +131,24 @@ void TouchBrowserFrameView::Observe(NotificationType type, |
| UpdateKeyboardAndLayout(false); |
| } |
| } |
| + |
| +/////////////////////////////////////////////////////////////////////////////// |
| +// |
| +// TouchBrowserFocusChangeListener |
| +// |
| +/////////////////////////////////////////////////////////////////////////////// |
| + |
| +TouchBrowserFrameView::TouchBrowserFocusChangeListener |
| + ::TouchBrowserFocusChangeListener(TouchBrowserFrameView* browser_frame) |
| + : touch_browser_frame_(browser_frame) { |
| +} |
| + |
| +void TouchBrowserFrameView::TouchBrowserFocusChangeListener::FocusWillChange( |
| + views::View* focused_before, views::View* focused_now) { |
| + if (!focused_before || (focused_now && focused_now->GetVirtualKeyboardType() |
| + != focused_before->GetVirtualKeyboardType())) { |
| + // TODO: support other types of keyboard. |
| + touch_browser_frame_->UpdateKeyboardAndLayout( |
| + focused_now->GetVirtualKeyboardType() == views::View::REGULAR_KEYBOARD); |
| + } |
| +} |