Index: ash/wm/workspace/workspace_window_resizer.cc |
diff --git a/ash/wm/workspace/workspace_window_resizer.cc b/ash/wm/workspace/workspace_window_resizer.cc |
index 666821afa6f04e7d79f09df03de45e13be1f35bd..5bb9874161e111a516c1ad4e45eaa28970ae416d 100644 |
--- a/ash/wm/workspace/workspace_window_resizer.cc |
+++ b/ash/wm/workspace/workspace_window_resizer.cc |
@@ -124,8 +124,11 @@ void WorkspaceWindowResizer::Drag(const gfx::Point& location, int event_flags) { |
if (wm::IsWindowNormal(window())) |
AdjustBoundsForMainWindow(&bounds, grid_size); |
if (bounds != window()->bounds()) { |
- if (!did_move_or_resize_) |
+ if (!did_move_or_resize_) { |
+ if (!details_.restore_bounds.IsEmpty()) |
+ ClearRestoreBounds(window()); |
RestackWindows(); |
+ } |
did_move_or_resize_ = true; |
} |
@@ -214,6 +217,9 @@ void WorkspaceWindowResizer::RevertDrag() { |
return; |
window()->SetBounds(details_.initial_bounds); |
+ if (!details_.restore_bounds.IsEmpty()) |
+ SetRestoreBoundsInScreen(details_.window, details_.restore_bounds); |
+ |
if (details_.window_component == HTRIGHT) { |
int last_x = details_.initial_bounds.right(); |
for (size_t i = 0; i < attached_windows_.size(); ++i) { |