summaryrefslogtreecommitdiffstats
path: root/chrome/browser/gtk
diff options
context:
space:
mode:
Diffstat (limited to 'chrome/browser/gtk')
-rwxr-xr-xchrome/browser/gtk/tabs/tab_strip_gtk.cc19
1 files changed, 17 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