Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(413)

Unified Diff: chrome/browser/ui/views/tabs/tab_drag_controller.cc

Issue 11085053: Improving window auto management between workspaces (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: No auto movement for tab dragging Created 8 years, 2 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
Index: chrome/browser/ui/views/tabs/tab_drag_controller.cc
diff --git a/chrome/browser/ui/views/tabs/tab_drag_controller.cc b/chrome/browser/ui/views/tabs/tab_drag_controller.cc
index 0b48e712542b09efa7c1b3bc54b65cbf6a85d841..44e068b9114699960601d47446f115c40605322f 100644
--- a/chrome/browser/ui/views/tabs/tab_drag_controller.cc
+++ b/chrome/browser/ui/views/tabs/tab_drag_controller.cc
@@ -47,6 +47,7 @@
#if defined(USE_ASH)
#include "ash/shell.h"
#include "ash/wm/property_util.h"
+#include "ash/wm/window_util.h"
#include "ui/aura/env.h"
#include "ui/aura/root_window.h"
#include "ui/base/gestures/gesture_recognizer.h"
@@ -828,6 +829,16 @@ TabDragController::DragBrowserToNewTabStrip(
browser_widget->ReleaseCapture();
#else
target_tabstrip->GetWidget()->SetCapture(attached_tabstrip_);
+ // To avoid the auto window management to kick in we set the user changed
sky 2012/10/23 19:35:39 What we're saying is that when you drag a window a
Mr4D (OOO till 08-26) 2012/10/24 16:41:37 Done indirectly as requested.
+ // flag. Note that the browser might only have a single tab left at this
+ // point and if that happens it will be destroyed shortly after in which
+ // case we don't want to ever take back the flag.
+ bool old_state = true;
+ if (GetModel(attached_tabstrip_)->count() > 1)
+ old_state = ash::wm::HasUserChangedWindowPositionOrSize(
+ browser_widget->GetNativeWindow());
+ ash::wm::SetUserHasChangedWindowPositionOrSize(
+ browser_widget->GetNativeWindow(), true);
#endif
// EndMoveLoop is going to snap the window back to its original location.
// Hide it so users don't see this.
@@ -840,6 +851,9 @@ TabDragController::DragBrowserToNewTabStrip(
// after the loop completes. But on chromeos, we can do tab swapping now to
// avoid the tab flashing issue(crbug.com/116329).
#if defined(USE_ASH)
+ if (!old_state)
+ ash::wm::SetUserHasChangedWindowPositionOrSize(
+ browser_widget->GetNativeWindow(), old_state);
is_dragging_window_ = false;
Detach(DONT_RELEASE_CAPTURE);
Attach(target_tabstrip, point_in_screen);
@@ -1308,7 +1322,7 @@ void TabDragController::DetachIntoNewBrowserAndRunMoveLoop(
void TabDragController::RunMoveLoop(const gfx::Point& drag_offset) {
// If the user drags the whole window we'll assume they are going to attach to
- // another window and therefor want to reorder.
+ // another window and therefore want to reorder.
move_behavior_ = REORDER;
move_loop_widget_ = GetAttachedBrowserWidget();

Powered by Google App Engine
This is Rietveld 408576698