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

Unified Diff: ash/wm/workspace/multi_window_resize_controller.cc

Issue 121153003: Prevents panels attached to shelf from docking (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Prevents panels attached to shelf from docking (comments+rebased) Created 6 years, 11 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: ash/wm/workspace/multi_window_resize_controller.cc
diff --git a/ash/wm/workspace/multi_window_resize_controller.cc b/ash/wm/workspace/multi_window_resize_controller.cc
index 573824e6bc332f7e72b43d6e9519ccdc42ba0faa..afc66fdb117f2833c70b4799728f5b035922bc2e 100644
--- a/ash/wm/workspace/multi_window_resize_controller.cc
+++ b/ash/wm/workspace/multi_window_resize_controller.cc
@@ -433,12 +433,14 @@ void MultiWindowResizeController::StartResize(
windows.push_back(windows_.other_windows[i]);
}
int component = windows_.direction == LEFT_RIGHT ? HTRIGHT : HTBOTTOM;
- window_resizer_.reset(WorkspaceWindowResizer::Create(
+ scoped_ptr<DragDetails> details(new DragDetails(
windows_.window1,
location_in_parent,
component,
- aura::client::WINDOW_MOVE_SOURCE_MOUSE,
- windows));
+ aura::client::WINDOW_MOVE_SOURCE_MOUSE));
+ wm::WindowState* window_state = wm::GetWindowState(windows_.window1);
+ window_state->set_drag_details(details.release());
+ window_resizer_.reset(WorkspaceWindowResizer::Create(window_state, windows));
}
void MultiWindowResizeController::Resize(const gfx::Point& location_in_screen,
@@ -460,6 +462,7 @@ void MultiWindowResizeController::Resize(const gfx::Point& location_in_screen,
void MultiWindowResizeController::CompleteResize() {
window_resizer_->CompleteDrag();
+ wm::GetWindowState(window_resizer_->GetTarget())->set_drag_details(NULL);
window_resizer_.reset();
// Mouse may still be over resizer, if not hide.
@@ -480,6 +483,7 @@ void MultiWindowResizeController::CancelResize() {
if (!window_resizer_)
return; // Happens if window was destroyed and we nuked the WindowResizer.
window_resizer_->RevertDrag();
+ wm::GetWindowState(window_resizer_->GetTarget())->set_drag_details(NULL);
window_resizer_.reset();
Hide();
}

Powered by Google App Engine
This is Rietveld 408576698