diff options
author | sky@chromium.org <sky@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2009-06-23 22:43:14 +0000 |
---|---|---|
committer | sky@chromium.org <sky@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2009-06-23 22:43:14 +0000 |
commit | 72dbbd2d557e77db5e252da8b3a68874b83fe335 (patch) | |
tree | 78223517fdbe43482eec081c489126a9b772acb0 /chrome | |
parent | fa1e6638e0f95de7e3447f7f0e88b5f3ee6c655b (diff) | |
download | chromium_src-72dbbd2d557e77db5e252da8b3a68874b83fe335.zip chromium_src-72dbbd2d557e77db5e252da8b3a68874b83fe335.tar.gz chromium_src-72dbbd2d557e77db5e252da8b3a68874b83fe335.tar.bz2 |
Syncs to latest messages and makes tab overview button work.
BUG=none
TEST=none
Review URL: http://codereview.chromium.org/147047
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@19073 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'chrome')
-rwxr-xr-x | chrome/browser/gtk/tabs/tab_strip_gtk.cc | 19 | ||||
-rw-r--r-- | chrome/browser/views/tabs/tab_overview_types.h | 14 |
2 files changed, 31 insertions, 2 deletions
diff --git a/chrome/browser/gtk/tabs/tab_strip_gtk.cc b/chrome/browser/gtk/tabs/tab_strip_gtk.cc index daeaa5c..0867e8d 100755 --- a/chrome/browser/gtk/tabs/tab_strip_gtk.cc +++ b/chrome/browser/gtk/tabs/tab_strip_gtk.cc @@ -10,7 +10,6 @@ #include "app/slide_animation.h" #include "base/gfx/gtk_util.h" #include "base/gfx/point.h" -#include "chrome/browser/browser.h" #include "chrome/browser/browser_theme_provider.h" #include "chrome/browser/gtk/custom_button.h" #include "chrome/browser/gtk/dnd_registry.h" @@ -21,6 +20,14 @@ #include "grit/app_resources.h" #include "grit/theme_resources.h" +#if defined(LINUX2) +#include "chrome/browser/browser.h" +#include "chrome/browser/browser_list.h" +#include "chrome/browser/gtk/browser_window_gtk.h" +#include "chrome/browser/views/tabs/tab_overview_types.h" +#include "chrome/common/x11_util.h" +#endif + namespace { const int kDefaultAnimationDurationMs = 100; @@ -1581,6 +1588,14 @@ CustomDrawButton* TabStripGtk::MakeTabOverviewButton() { // static void TabStripGtk::OnTabOverviewButtonClicked(GtkWidget* widget, TabStripGtk* tabstrip) { - // TODO(sky): implement me. + Browser* browser = BrowserList::GetLastActive(); + DCHECK(browser); // In order for the user to click on the tab there should + // be an active browser. + TabOverviewTypes::Message message; + message.set_type(TabOverviewTypes::Message::WM_SWITCH_TO_OVERVIEW_MODE); + GtkWidget* browser_widget = GTK_WIDGET( + static_cast<BrowserWindowGtk*>(browser->window())->GetNativeHandle()); + message.set_param(0, x11_util::GetX11WindowFromGtkWidget(browser_widget)); + TabOverviewTypes::instance()->SendMessage(message); } #endif diff --git a/chrome/browser/views/tabs/tab_overview_types.h b/chrome/browser/views/tabs/tab_overview_types.h index 3f255a5..dc40fed 100644 --- a/chrome/browser/views/tabs/tab_overview_types.h +++ b/chrome/browser/views/tabs/tab_overview_types.h @@ -120,6 +120,20 @@ class TabOverviewTypes { // param[0]: X ID of the panel window WM_NOTIFY_PANEL_DRAG_COMPLETE, + // Instruct the WM to focus a window. This is used when a tab is + // clicked in a tab overview window. + // param[0]: X ID of the window to focus + WM_FOCUS_WINDOW, + + // Notify Chrome that the layout mode (for example, overview or + // focused) has changed. + // param[0]: new mode (0 means focused, 1 means overview) + CHROME_NOTIFY_LAYOUT_MODE, + + // Instruct the WM to enter overview mode. + // param[0]: X ID of the window show the tab overview for. + WM_SWITCH_TO_OVERVIEW_MODE, + kNumTypes, }; |