| Index: ash/wm/workspace/workspace_manager2.cc
|
| diff --git a/ash/wm/workspace/workspace_manager2.cc b/ash/wm/workspace/workspace_manager2.cc
|
| index 0bb5935c49fef590ad94b0f0322422f3a136a67c..247a9614abc2c4318b01194e5db901f64491daa6 100644
|
| --- a/ash/wm/workspace/workspace_manager2.cc
|
| +++ b/ash/wm/workspace/workspace_manager2.cc
|
| @@ -201,7 +201,11 @@ void WorkspaceManager2::SetActiveWorkspaceByWindow(Window* window) {
|
| if (workspace != active_workspace_) {
|
| // If the window persists across all workspaces, move it to the current
|
| // workspace.
|
| - if (GetPersistsAcrossAllWorkspaces(window) && !IsMaximized(window))
|
| + // A popup which was first maximized, is minimized and getts restored has
|
| + // to go through the SetActiveWorkspace since it persists across workspaces
|
| + // and is not (yet) maximized (see crbug.com/151698).
|
| + if (GetPersistsAcrossAllWorkspaces(window) && !IsMaximized(window) &&
|
| + !(wm::IsWindowMinimized(window) && WillRestoreMaximized(window)))
|
| ReparentWindow(window, active_workspace_->window(), NULL);
|
| else
|
| SetActiveWorkspace(workspace, ANIMATE_OLD_AND_NEW);
|
|
|