Index: chrome/browser/views/tabs/tab_overview_message_listener.cc |
=================================================================== |
--- chrome/browser/views/tabs/tab_overview_message_listener.cc (revision 28714) |
+++ chrome/browser/views/tabs/tab_overview_message_listener.cc (working copy) |
@@ -6,7 +6,11 @@ |
#include "chrome/browser/browser.h" |
#include "chrome/browser/browser_list.h" |
+#if defined(TOOLKIT_VIEWS) |
+#include "chrome/browser/views/frame/browser_view.h" |
+#else |
#include "chrome/browser/gtk/browser_window_gtk.h" |
+#endif |
#include "chrome/browser/metrics/system_metrics_logger_impl.h" |
#include "chrome/browser/metrics/system_metrics.pb.h" |
#include "chrome/browser/metrics/user_metrics.h" |
@@ -24,6 +28,22 @@ |
return instance; |
} |
+#if defined(TOOLKIT_VIEWS) |
+// static |
+BrowserView* TabOverviewMessageListener::GetBrowserViewForGdkWindow( |
+ GdkWindow* gdk_window) { |
+ gpointer data = NULL; |
+ gdk_window_get_user_data(gdk_window, &data); |
+ GtkWidget* widget = reinterpret_cast<GtkWidget*>(data); |
+ if (widget) { |
+ GtkWindow* gtk_window = GTK_WINDOW(widget); |
+ return BrowserView::GetBrowserViewForNativeWindow(gtk_window); |
+ } else { |
+ return NULL; |
+ } |
+} |
+#endif |
+ |
void TabOverviewMessageListener::WillProcessEvent(GdkEvent* event) { |
} |
@@ -72,10 +92,14 @@ |
if (message.param(0) == 0) { |
HideOverview(); |
} else { |
- BrowserWindowGtk* browser_window = |
+#if defined(TOOLKIT_VIEWS) |
+ BrowserView* browser_window = GetBrowserViewForGdkWindow(window); |
+#else |
+ BrowerWindowGtk* browser_window = |
BrowserWindowGtk::GetBrowserWindowForNativeWindow( |
BrowserWindowGtk::GetBrowserWindowForXID( |
x11_util::GetX11WindowFromGdkWindow(window))); |
+#endif |
if (browser_window) |
ShowOverview(browser_window->browser(), message.param(1)); |
else |
@@ -109,7 +133,12 @@ |
// Over a mini-window, make sure the controller is showing the contents |
// of the browser the mouse is over. |
- BrowserWindowGtk* browser_window = |
+#if defined(TOOLKIT_VIEWS) |
+ NOTIMPLEMENTED(); |
+ // TODO(oshima): Figure out how to get BrowserView from XID |
+ // in message.param(0). |
+#else |
+ BrowerWindowGtk* browser_window = |
BrowserWindowGtk::GetBrowserWindowForNativeWindow( |
BrowserWindowGtk::GetBrowserWindowForXID(message.param(0))); |
if (!browser_window) |
@@ -125,6 +154,7 @@ |
UserMetrics::RecordAction(L"TabOverview_DragOverMiniWindow", |
browser_window->browser()->profile()); |
+#endif |
} |
default: |