diff options
Diffstat (limited to 'ash/wm/workspace/workspace_layout_manager2.cc')
-rw-r--r-- | ash/wm/workspace/workspace_layout_manager2.cc | 15 |
1 files changed, 14 insertions, 1 deletions
diff --git a/ash/wm/workspace/workspace_layout_manager2.cc b/ash/wm/workspace/workspace_layout_manager2.cc index 8f966f7..7f3be99 100644 --- a/ash/wm/workspace/workspace_layout_manager2.cc +++ b/ash/wm/workspace/workspace_layout_manager2.cc @@ -129,6 +129,10 @@ void WorkspaceLayoutManager2::OnChildWindowVisibilityChanged(Window* child, void WorkspaceLayoutManager2::SetChildBounds( Window* child, const gfx::Rect& requested_bounds) { + if (!GetTrackedByWorkspace(child)) { + SetChildBoundsDirect(child, requested_bounds); + return; + } gfx::Rect child_bounds(requested_bounds); // Some windows rely on this to set their initial bounds. if (!SetMaximizedOrFullscreenBounds(child)) @@ -211,6 +215,11 @@ void WorkspaceLayoutManager2::OnWindowPropertyChanged(Window* window, SetRestoreBoundsInScreen(window, restore); } + if (key == internal::kWindowTrackedByWorkspaceKey && + GetTrackedByWorkspace(window)) { + workspace_manager()->OnTrackedByWorkspaceChanged(workspace_, window); + } + if (key == aura::client::kAlwaysOnTopKey && window->GetProperty(aura::client::kAlwaysOnTopKey)) { internal::AlwaysOnTopController* controller = @@ -274,7 +283,8 @@ void WorkspaceLayoutManager2::AdjustWindowSizesForScreenChange( void WorkspaceLayoutManager2::AdjustWindowSizeForScreenChange( Window* window, AdjustWindowReason reason) { - if (!SetMaximizedOrFullscreenBounds(window)) { + if (GetTrackedByWorkspace(window) && + !SetMaximizedOrFullscreenBounds(window)) { if (reason == ADJUST_WINDOW_SCREEN_SIZE_CHANGED) { // The work area may be smaller than the full screen. Put as much of the // window as possible within the display area. @@ -339,6 +349,9 @@ void WorkspaceLayoutManager2::UpdateBoundsFromShowState(Window* window) { bool WorkspaceLayoutManager2::SetMaximizedOrFullscreenBounds( aura::Window* window) { + if (!GetTrackedByWorkspace(window)) + return false; + // During animations there is a transform installed on the workspace // windows. For this reason this code uses the parent so that the transform is // ignored. |