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(); |
} |