Index: chrome/browser/ui/gtk/tabs/dragged_tab_controller_gtk.cc |
diff --git a/chrome/browser/ui/gtk/tabs/dragged_tab_controller_gtk.cc b/chrome/browser/ui/gtk/tabs/dragged_tab_controller_gtk.cc |
index 586dc63b50fa12b6f5bf6837cb11e0e79d2b681a..21ab6d674ef92bf832d59dbe154bdaf78c0b984b 100644 |
--- a/chrome/browser/ui/gtk/tabs/dragged_tab_controller_gtk.cc |
+++ b/chrome/browser/ui/gtk/tabs/dragged_tab_controller_gtk.cc |
@@ -17,7 +17,9 @@ |
#include "chrome/browser/ui/gtk/gtk_util.h" |
#include "chrome/browser/ui/gtk/tabs/dragged_view_gtk.h" |
#include "chrome/browser/ui/gtk/tabs/tab_strip_gtk.h" |
+#include "chrome/browser/ui/gtk/tabs/window_finder.h" |
#include "chrome/browser/ui/media_utils.h" |
+#include "chrome/browser/ui/tabs/dock_info.h" |
#include "chrome/browser/ui/tabs/tab_strip_model.h" |
#include "chrome/browser/ui/tabs/tab_strip_model_delegate.h" |
#include "content/public/browser/notification_source.h" |
@@ -362,12 +364,7 @@ void DraggedTabControllerGtk::MoveDetached(const gfx::Point& screen_point) { |
TabStripGtk* DraggedTabControllerGtk::GetTabStripForPoint( |
const gfx::Point& screen_point) { |
- GtkWidget* dragged_window = dragged_view_->widget(); |
- dock_windows_.insert(dragged_window); |
- gfx::NativeWindow local_window = |
- DockInfo::GetLocalProcessWindowAtPoint( |
- chrome::HOST_DESKTOP_TYPE_NATIVE, screen_point, dock_windows_); |
- dock_windows_.erase(dragged_window); |
+ gfx::NativeWindow local_window = GetLocalProcessWindow(screen_point); |
if (!local_window) |
return NULL; |
@@ -778,7 +775,7 @@ bool DraggedTabControllerGtk::CompleteDrag() { |
Browser* new_browser = |
source_tabstrip_->model()->delegate()->CreateNewStripWithContents( |
- contentses, window_bounds, dock_info_, window->IsMaximized()); |
+ contentses, window_bounds, DockInfo(), window->IsMaximized()); |
RestoreSelection(new_browser->tab_strip_model()); |
new_browser->window()->Show(); |
CleanUpHiddenFrame(); |
@@ -874,17 +871,8 @@ void DraggedTabControllerGtk::OnAnimateToBoundsComplete() { |
void DraggedTabControllerGtk::BringWindowUnderMouseToFront() { |
// If we're going to dock to another window, bring it to the front. |
- gfx::NativeWindow window = dock_info_.window(); |
- if (!window) { |
- gfx::NativeView dragged_tab = dragged_view_->widget(); |
- dock_windows_.insert(dragged_tab); |
- window = DockInfo::GetLocalProcessWindowAtPoint( |
- chrome::HOST_DESKTOP_TYPE_NATIVE, |
- gfx::Screen::GetNativeScreen()->GetCursorScreenPoint(), |
- dock_windows_); |
- dock_windows_.erase(dragged_tab); |
- } |
- |
+ gfx::NativeWindow window = GetLocalProcessWindow( |
+ gfx::Screen::GetNativeScreen()->GetCursorScreenPoint()); |
if (window) |
gtk_window_present(GTK_WINDOW(window)); |
} |
@@ -898,3 +886,13 @@ bool DraggedTabControllerGtk::AreTabsConsecutive() { |
} |
return true; |
} |
+ |
+gfx::NativeWindow DraggedTabControllerGtk::GetLocalProcessWindow( |
+ const gfx::Point& screen_point) { |
+ std::set<GtkWidget*> dragged_window; |
+ dragged_window.insert(dragged_view_->widget()); |
+ return GetLocalProcessWindowAtPoint( |
+ gfx::Screen::GetNativeScreen()->GetCursorScreenPoint(), |
+ dragged_window); |
+ |
+} |