OLD | NEW |
1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. |
2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
4 | 4 |
5 #include "ash/wm/workspace/workspace_layout_manager.h" | 5 #include "ash/wm/workspace/workspace_layout_manager.h" |
6 | 6 |
7 #include "ash/screen_ash.h" | 7 #include "ash/screen_ash.h" |
8 #include "ash/wm/window_util.h" | 8 #include "ash/wm/window_util.h" |
9 #include "ash/wm/window_properties.h" | 9 #include "ash/wm/window_properties.h" |
10 #include "ash/wm/workspace/workspace.h" | 10 #include "ash/wm/workspace/workspace.h" |
(...skipping 20 matching lines...) Expand all Loading... |
31 | 31 |
32 WorkspaceLayoutManager::~WorkspaceLayoutManager() { | 32 WorkspaceLayoutManager::~WorkspaceLayoutManager() { |
33 } | 33 } |
34 | 34 |
35 void WorkspaceLayoutManager::OnWindowResized() { | 35 void WorkspaceLayoutManager::OnWindowResized() { |
36 // Workspace is updated via OnRootWindowResized. | 36 // Workspace is updated via OnRootWindowResized. |
37 } | 37 } |
38 | 38 |
39 void WorkspaceLayoutManager::OnWindowAddedToLayout(aura::Window* child) { | 39 void WorkspaceLayoutManager::OnWindowAddedToLayout(aura::Window* child) { |
40 BaseLayoutManager::OnWindowAddedToLayout(child); | 40 BaseLayoutManager::OnWindowAddedToLayout(child); |
41 if (!workspace_manager_->IsManagedWindow(child)) { | 41 if (!workspace_manager_->ShouldManageWindow(child)) { |
42 if (child->IsVisible()) | 42 if (child->IsVisible()) |
43 workspace_manager_->UpdateShelfVisibility(); | 43 workspace_manager_->UpdateShelfVisibility(); |
44 return; | 44 return; |
45 } | 45 } |
46 | 46 |
47 if (child->IsVisible()) | 47 if (child->IsVisible()) |
48 workspace_manager_->AddWindow(child); | 48 workspace_manager_->AddWindow(child); |
49 } | 49 } |
50 | 50 |
51 void WorkspaceLayoutManager::OnWillRemoveWindowFromLayout(aura::Window* child) { | 51 void WorkspaceLayoutManager::OnWillRemoveWindowFromLayout(aura::Window* child) { |
52 workspace_manager_->RemoveWindow(child); | 52 workspace_manager_->RemoveWindow(child); |
53 BaseLayoutManager::OnWillRemoveWindowFromLayout(child); | 53 BaseLayoutManager::OnWillRemoveWindowFromLayout(child); |
54 } | 54 } |
55 | 55 |
56 void WorkspaceLayoutManager::OnWindowRemovedFromLayout(aura::Window* child) { | 56 void WorkspaceLayoutManager::OnWindowRemovedFromLayout(aura::Window* child) { |
57 workspace_manager_->UpdateShelfVisibility(); | 57 workspace_manager_->UpdateShelfVisibility(); |
58 BaseLayoutManager::OnWindowRemovedFromLayout(child); | 58 BaseLayoutManager::OnWindowRemovedFromLayout(child); |
59 } | 59 } |
60 | 60 |
61 void WorkspaceLayoutManager::OnChildWindowVisibilityChanged( | 61 void WorkspaceLayoutManager::OnChildWindowVisibilityChanged( |
62 aura::Window* child, | 62 aura::Window* child, |
63 bool visible) { | 63 bool visible) { |
64 BaseLayoutManager::OnChildWindowVisibilityChanged(child, visible); | 64 BaseLayoutManager::OnChildWindowVisibilityChanged(child, visible); |
65 if (!workspace_manager_->IsManagedWindow(child)) { | 65 if (!workspace_manager_->ShouldManageWindow(child)) { |
66 workspace_manager_->UpdateShelfVisibility(); | 66 workspace_manager_->UpdateShelfVisibility(); |
67 return; | 67 return; |
68 } | 68 } |
69 | 69 |
70 if (visible) | 70 if (visible) |
71 workspace_manager_->AddWindow(child); | 71 workspace_manager_->AddWindow(child); |
72 else | 72 else |
73 workspace_manager_->RemoveWindow(child); | 73 workspace_manager_->RemoveWindow(child); |
74 } | 74 } |
75 | 75 |
(...skipping 15 matching lines...) Expand all Loading... |
91 ash::GetTrackedByWorkspace(window)) { | 91 ash::GetTrackedByWorkspace(window)) { |
92 // We currently don't need to support transitioning from true to false, so | 92 // We currently don't need to support transitioning from true to false, so |
93 // we ignore it. | 93 // we ignore it. |
94 workspace_manager_->AddWindow(window); | 94 workspace_manager_->AddWindow(window); |
95 } | 95 } |
96 } | 96 } |
97 | 97 |
98 void WorkspaceLayoutManager::ShowStateChanged( | 98 void WorkspaceLayoutManager::ShowStateChanged( |
99 aura::Window* window, | 99 aura::Window* window, |
100 ui::WindowShowState last_show_state) { | 100 ui::WindowShowState last_show_state) { |
101 if (workspace_manager_->IsManagedWindow(window)) { | 101 if (workspace_manager_->ShouldManageWindow(window)) { |
102 if (wm::IsWindowMinimized(window)) { | 102 if (wm::IsWindowMinimized(window)) { |
103 workspace_manager_->RemoveWindow(window); | 103 workspace_manager_->RemoveWindow(window); |
104 } else if ((window->TargetVisibility() || | 104 } else if ((window->TargetVisibility() || |
105 last_show_state == ui::SHOW_STATE_MINIMIZED) && | 105 last_show_state == ui::SHOW_STATE_MINIMIZED) && |
106 !workspace_manager_->IsManagingWindow(window)) { | 106 !workspace_manager_->Contains(window)) { |
107 workspace_manager_->AddWindow(window); | 107 workspace_manager_->AddWindow(window); |
108 } | 108 } |
109 } else { | 109 } else { |
110 workspace_manager_->UpdateShelfVisibility(); | 110 workspace_manager_->UpdateShelfVisibility(); |
111 } | 111 } |
112 BaseLayoutManager::ShowStateChanged(window, last_show_state); | 112 BaseLayoutManager::ShowStateChanged(window, last_show_state); |
113 workspace_manager_->ShowStateChanged(window); | 113 workspace_manager_->ShowStateChanged(window); |
114 } | 114 } |
115 | 115 |
116 } // namespace internal | 116 } // namespace internal |
117 } // namespace ash | 117 } // namespace ash |
OLD | NEW |