diff options
author | jcampan@chromium.org <jcampan@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2009-09-14 20:20:35 +0000 |
---|---|---|
committer | jcampan@chromium.org <jcampan@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2009-09-14 20:20:35 +0000 |
commit | 2be2c01334383d74703dc88ecb67fae96a9124f9 (patch) | |
tree | 33b49e76db9830e974d235047ee940c0eecacdd4 /chrome/browser/views/frame | |
parent | 9c1a794e4b6c9d3ffca49889958ff381ecb82e32 (diff) | |
download | chromium_src-2be2c01334383d74703dc88ecb67fae96a9124f9.zip chromium_src-2be2c01334383d74703dc88ecb67fae96a9124f9.tar.gz chromium_src-2be2c01334383d74703dc88ecb67fae96a9124f9.tar.bz2 |
This CL makes the focus remembered across tab switches for Chrome Linux with toolkit views.
It also contains clean-ups and implementation of different minor focus related things.
BUG=None
TEST=Open several tabs. Focus the location bar for some tabs, the page for others. Make sure that when switching between tabs the focus is restored to the last focused place (location bar or page) for each tab.
Also test that deactivating/reactivating the browser window still restores focus properly.
Review URL: http://codereview.chromium.org/194041
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@26153 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'chrome/browser/views/frame')
-rw-r--r-- | chrome/browser/views/frame/browser_frame_gtk.cc | 14 | ||||
-rw-r--r-- | chrome/browser/views/frame/browser_frame_gtk.h | 2 |
2 files changed, 16 insertions, 0 deletions
diff --git a/chrome/browser/views/frame/browser_frame_gtk.cc b/chrome/browser/views/frame/browser_frame_gtk.cc index a2ce1db..7ca24f9 100644 --- a/chrome/browser/views/frame/browser_frame_gtk.cc +++ b/chrome/browser/views/frame/browser_frame_gtk.cc @@ -81,3 +81,17 @@ views::RootView* BrowserFrameGtk::CreateRootView() { root_view_ = new BrowserRootView(browser_view_, this); return root_view_; } + +gboolean BrowserFrameGtk::OnFocusIn(GtkWidget* widget, + GdkEventFocus* event) { + browser_view_->ActivationChanged(true); + return views::WindowGtk::OnFocusIn(widget, event); +} + +gboolean BrowserFrameGtk::OnFocusOut(GtkWidget* widget, + GdkEventFocus* event) { + browser_view_->ActivationChanged(false); + return views::WindowGtk::OnFocusOut(widget, event); +} + + diff --git a/chrome/browser/views/frame/browser_frame_gtk.h b/chrome/browser/views/frame/browser_frame_gtk.h index 78e9d53..1e1f308 100644 --- a/chrome/browser/views/frame/browser_frame_gtk.h +++ b/chrome/browser/views/frame/browser_frame_gtk.h @@ -36,6 +36,8 @@ class BrowserFrameGtk : public BrowserFrame, // Overridden from views::Widget. virtual ThemeProvider* GetThemeProvider() const; virtual ThemeProvider* GetDefaultThemeProvider() const; + virtual gboolean OnFocusIn(GtkWidget* widget, GdkEventFocus* event); + virtual gboolean OnFocusOut(GtkWidget* widget, GdkEventFocus* event); protected: // WidgetGtk overrides. |