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 d8755bcac24408b90142bc3aef6cc4f550532994..e6f795a7a4e8ecda828b9cfa19b2574dfe6e5a3a 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()); |
sky
2012/09/06 19:45:11
Wait until the drag is complete before clearing th
Mr4D (OOO till 08-26)
2012/09/06 23:16:13
No. There is code which has special behavior when
|
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) { |