| Index: ash/wm/workspace_controller.cc
|
| diff --git a/ash/wm/workspace_controller.cc b/ash/wm/workspace_controller.cc
|
| index 64a23a94fb3d71b7b70f568d74c752c856f7a3e4..be22812363b05037055060538a6570a6fa682b27 100644
|
| --- a/ash/wm/workspace_controller.cc
|
| +++ b/ash/wm/workspace_controller.cc
|
| @@ -30,6 +30,15 @@ namespace {
|
| // animation (when logging in).
|
| const int kInitialPauseTimeMS = 750;
|
|
|
| +// Returns true if the |window| is docked and visible.
|
| +bool IsDockedAndVisible(const aura::Window* window) {
|
| + return (window->parent()->id() == kShellWindowId_DockedContainer &&
|
| + window->IsVisible() &&
|
| + !wm::GetWindowState(window)->IsMinimized() &&
|
| + window->type() != aura::client::WINDOW_TYPE_POPUP &&
|
| + !window->transient_parent());
|
| +}
|
| +
|
| } // namespace
|
|
|
| WorkspaceController::WorkspaceController(aura::Window* viewport)
|
| @@ -86,8 +95,11 @@ WorkspaceWindowState WorkspaceController::GetWindowState() const {
|
| } else if (window_state->IsFullscreen()) {
|
| return WORKSPACE_WINDOW_STATE_FULL_SCREEN;
|
| }
|
| - if (!window_overlaps_launcher && (*i)->bounds().Intersects(shelf_bounds))
|
| + if (!window_overlaps_launcher &&
|
| + ((*i)->bounds().Intersects(shelf_bounds) ||
|
| + IsDockedAndVisible(*i))) {
|
| window_overlaps_launcher = true;
|
| + }
|
| }
|
| }
|
| if (has_maximized_window)
|
|
|