summaryrefslogtreecommitdiffstats
path: root/chrome
diff options
context:
space:
mode:
authorsky@chromium.org <sky@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2009-06-23 22:43:14 +0000
committersky@chromium.org <sky@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2009-06-23 22:43:14 +0000
commit72dbbd2d557e77db5e252da8b3a68874b83fe335 (patch)
tree78223517fdbe43482eec081c489126a9b772acb0 /chrome
parentfa1e6638e0f95de7e3447f7f0e88b5f3ee6c655b (diff)
downloadchromium_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-xchrome/browser/gtk/tabs/tab_strip_gtk.cc19
-rw-r--r--chrome/browser/views/tabs/tab_overview_types.h14
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,
};