Index: chrome/browser/ui/views/tabs/tab_drag_controller.h |
diff --git a/chrome/browser/ui/views/tabs/tab_drag_controller.h b/chrome/browser/ui/views/tabs/tab_drag_controller.h |
index dd9f68dc2789890ea6ecff5df6290b9bb7c44b8b..a3c135496bd8335d23bd48fff86ad7fb846c8503 100644 |
--- a/chrome/browser/ui/views/tabs/tab_drag_controller.h |
+++ b/chrome/browser/ui/views/tabs/tab_drag_controller.h |
@@ -320,8 +320,11 @@ class TabDragController : public content::WebContentsDelegate, |
// runs a nested move loop. |
void DetachIntoNewBrowserAndRunMoveLoop(const gfx::Point& point_in_screen); |
- // Runs a nested message loop that handles moving the current Browser. |
- void RunMoveLoop(); |
+ // Runs a nested message loop that handles moving the current |
+ // Browser. |drag_offset| is the offset from the window origin and is used in |
+ // calculating the location of the window offset from the cursor while |
+ // dragging. |
+ void RunMoveLoop(const gfx::Point& drag_offset); |
// Determines the index to insert tabs at. |dragged_bounds| is the bounds of |
// the tabs being dragged, |start| the index of the tab to start looking from |
@@ -428,6 +431,7 @@ class TabDragController : public content::WebContentsDelegate, |
// Creates and returns a new Browser to handle the drag. |
Browser* CreateBrowserForDrag(TabStrip* source, |
const gfx::Point& point_in_screen, |
+ gfx::Point* drag_offset, |
std::vector<gfx::Rect>* drag_bounds); |
// Returns the TabStripModel for the specified tabstrip. |
@@ -437,6 +441,10 @@ class TabDragController : public content::WebContentsDelegate, |
// mouse or the location of the current touch point. |
gfx::Point GetCursorScreenPoint(); |
+ // Returns the offset from the top left corner of the window to |
+ // |point_in_screen|. |
+ gfx::Point GetWindowOffset(const gfx::Point& point_in_screen); |
+ |
// Returns true if moving the mouse only changes the visible tabs. |
bool move_only() const { |
return (move_behavior_ == MOVE_VISIBILE_TABS) != 0; |