| Index: ash/wm/workspace/workspace_layout_manager.cc
|
| diff --git a/ash/wm/workspace/workspace_layout_manager.cc b/ash/wm/workspace/workspace_layout_manager.cc
|
| index fe7d748d19b8c953c2c18530750ffb1c190d8f8e..f388632d19ec77cd9b843e6931ca8c26428ac98f 100644
|
| --- a/ash/wm/workspace/workspace_layout_manager.cc
|
| +++ b/ash/wm/workspace/workspace_layout_manager.cc
|
| @@ -264,22 +264,28 @@ void WorkspaceLayoutManager::AdjustWindowBoundsWhenAdded(
|
| if (window_state->window()->bounds().IsEmpty())
|
| return;
|
|
|
| - if (window_state->is_dragged())
|
| - return;
|
| -
|
| - if (SetMaximizedOrFullscreenBounds(window_state))
|
| - return;
|
| -
|
| Window* window = window_state->window();
|
| gfx::Rect bounds = window->bounds();
|
| - int min_width = bounds.width() * kMinimumPercentOnScreenArea;
|
| - int min_height = bounds.height() * kMinimumPercentOnScreenArea;
|
| +
|
| // Use entire display instead of workarea because the workarea can
|
| // be further shrunk by the docked area. The logic ensures 30%
|
| // visibility which should be enough to see where the window gets
|
| // moved.
|
| gfx::Rect display_area = ScreenAsh::GetDisplayBoundsInParent(window);
|
|
|
| + if (window_state->is_dragged()) {
|
| + ash::wm::AdjustBoundsToEnsureMinimumWindowVisibility(
|
| + display_area, &bounds);
|
| + if (window->bounds() != bounds)
|
| + window->SetBounds(bounds);
|
| + return;
|
| + }
|
| +
|
| + if (SetMaximizedOrFullscreenBounds(window_state))
|
| + return;
|
| +
|
| + int min_width = bounds.width() * kMinimumPercentOnScreenArea;
|
| + int min_height = bounds.height() * kMinimumPercentOnScreenArea;
|
| ash::wm::AdjustBoundsToEnsureWindowVisibility(
|
| display_area, min_width, min_height, &bounds);
|
| AdjustSnappedBounds(window_state, &bounds);
|
|
|