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/root_window_controller.h" | 5 #include "ash/root_window_controller.h" |
6 | 6 |
7 #include <vector> | 7 #include <vector> |
8 | 8 |
9 #include "ash/desktop_background/desktop_background_widget_controller.h" | 9 #include "ash/desktop_background/desktop_background_widget_controller.h" |
10 #include "ash/display/display_controller.h" | 10 #include "ash/display/display_controller.h" |
(...skipping 116 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
127 container->SetProperty(internal::kUsesScreenCoordinatesKey, true); | 127 container->SetProperty(internal::kUsesScreenCoordinatesKey, true); |
128 } | 128 } |
129 | 129 |
130 // Creates each of the special window containers that holds windows of various | 130 // Creates each of the special window containers that holds windows of various |
131 // types in the shell UI. | 131 // types in the shell UI. |
132 void CreateContainersInRootWindow(aura::RootWindow* root_window) { | 132 void CreateContainersInRootWindow(aura::RootWindow* root_window) { |
133 // These containers are just used by PowerButtonController to animate groups | 133 // These containers are just used by PowerButtonController to animate groups |
134 // of containers simultaneously without messing up the current transformations | 134 // of containers simultaneously without messing up the current transformations |
135 // on those containers. These are direct children of the root window; all of | 135 // on those containers. These are direct children of the root window; all of |
136 // the other containers are their children. | 136 // the other containers are their children. |
137 // Desktop and lock screen background containers are not part of the | |
138 // lock animation so they are not included in those animate groups. | |
139 | |
140 aura::Window* desktop_background_containers = CreateContainer( | |
141 internal::kShellWindowId_DesktopBackgroundContainer, | |
142 "DesktopBackgroundContainer", | |
143 root_window); | |
144 SetChildWindowVisibilityChangesAnimated(desktop_background_containers); | |
145 | |
137 aura::Window* non_lock_screen_containers = CreateContainer( | 146 aura::Window* non_lock_screen_containers = CreateContainer( |
138 internal::kShellWindowId_NonLockScreenContainersContainer, | 147 internal::kShellWindowId_NonLockScreenContainersContainer, |
139 "NonLockScreenContainersContainer", | 148 "NonLockScreenContainersContainer", |
140 root_window); | 149 root_window); |
150 | |
151 aura::Window* lock_background_containers = CreateContainer( | |
Daniel Erat
2012/09/04 16:58:59
Nikita and I discussed this over IM. I didn't thi
Nikita (slow)
2012/09/04 17:36:42
Done.
| |
152 internal::kShellWindowId_LockScreenBackgroundContainer, | |
153 "LockScreenBackgroundContainer", | |
154 root_window); | |
155 SetChildWindowVisibilityChangesAnimated(lock_background_containers); | |
156 | |
141 aura::Window* lock_screen_containers = CreateContainer( | 157 aura::Window* lock_screen_containers = CreateContainer( |
142 internal::kShellWindowId_LockScreenContainersContainer, | 158 internal::kShellWindowId_LockScreenContainersContainer, |
143 "LockScreenContainersContainer", | 159 "LockScreenContainersContainer", |
144 root_window); | 160 root_window); |
145 aura::Window* lock_screen_related_containers = CreateContainer( | 161 aura::Window* lock_screen_related_containers = CreateContainer( |
146 internal::kShellWindowId_LockScreenRelatedContainersContainer, | 162 internal::kShellWindowId_LockScreenRelatedContainersContainer, |
147 "LockScreenRelatedContainersContainer", | 163 "LockScreenRelatedContainersContainer", |
148 root_window); | 164 root_window); |
149 | 165 |
150 CreateContainer(internal::kShellWindowId_UnparentedControlContainer, | 166 CreateContainer(internal::kShellWindowId_UnparentedControlContainer, |
151 "UnparentedControlContainer", | 167 "UnparentedControlContainer", |
152 non_lock_screen_containers); | 168 non_lock_screen_containers); |
153 | 169 |
154 CreateContainer(internal::kShellWindowId_SystemBackgroundContainer, | 170 CreateContainer(internal::kShellWindowId_SystemBackgroundContainer, |
155 "SystemBackgroundContainer", non_lock_screen_containers); | 171 "SystemBackgroundContainer", non_lock_screen_containers); |
156 | 172 |
157 aura::Window* desktop_background_containers = CreateContainer( | |
158 internal::kShellWindowId_DesktopBackgroundContainer, | |
159 "DesktopBackgroundContainer", | |
160 non_lock_screen_containers); | |
161 SetChildWindowVisibilityChangesAnimated(desktop_background_containers); | |
162 | |
163 aura::Window* default_container = CreateContainer( | 173 aura::Window* default_container = CreateContainer( |
164 internal::kShellWindowId_DefaultContainer, | 174 internal::kShellWindowId_DefaultContainer, |
165 "DefaultContainer", | 175 "DefaultContainer", |
166 non_lock_screen_containers); | 176 non_lock_screen_containers); |
167 default_container->SetEventFilter( | 177 default_container->SetEventFilter( |
168 new ToplevelWindowEventFilter(default_container)); | 178 new ToplevelWindowEventFilter(default_container)); |
169 SetChildWindowVisibilityChangesAnimated(default_container); | 179 SetChildWindowVisibilityChangesAnimated(default_container); |
170 SetUsesScreenCoordinates(default_container); | 180 SetUsesScreenCoordinates(default_container); |
171 | 181 |
172 aura::Window* always_on_top_container = CreateContainer( | 182 aura::Window* always_on_top_container = CreateContainer( |
(...skipping 31 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
204 new internal::SystemModalContainerLayoutManager(modal_container)); | 214 new internal::SystemModalContainerLayoutManager(modal_container)); |
205 SetChildWindowVisibilityChangesAnimated(modal_container); | 215 SetChildWindowVisibilityChangesAnimated(modal_container); |
206 SetUsesScreenCoordinates(modal_container); | 216 SetUsesScreenCoordinates(modal_container); |
207 | 217 |
208 aura::Window* input_method_container = CreateContainer( | 218 aura::Window* input_method_container = CreateContainer( |
209 internal::kShellWindowId_InputMethodContainer, | 219 internal::kShellWindowId_InputMethodContainer, |
210 "InputMethodContainer", | 220 "InputMethodContainer", |
211 non_lock_screen_containers); | 221 non_lock_screen_containers); |
212 SetUsesScreenCoordinates(input_method_container); | 222 SetUsesScreenCoordinates(input_method_container); |
213 | 223 |
214 aura::Window* lock_background_containers = CreateContainer( | |
215 internal::kShellWindowId_LockScreenBackgroundContainer, | |
216 "LockScreenBackgroundContainer", | |
217 lock_screen_containers); | |
218 | |
219 SetChildWindowVisibilityChangesAnimated(lock_background_containers); | |
220 | |
221 // TODO(beng): Figure out if we can make this use | 224 // TODO(beng): Figure out if we can make this use |
222 // SystemModalContainerEventFilter instead of stops_event_propagation. | 225 // SystemModalContainerEventFilter instead of stops_event_propagation. |
223 aura::Window* lock_container = CreateContainer( | 226 aura::Window* lock_container = CreateContainer( |
224 internal::kShellWindowId_LockScreenContainer, | 227 internal::kShellWindowId_LockScreenContainer, |
225 "LockScreenContainer", | 228 "LockScreenContainer", |
226 lock_screen_containers); | 229 lock_screen_containers); |
227 lock_container->SetLayoutManager( | 230 lock_container->SetLayoutManager( |
228 new internal::BaseLayoutManager(root_window)); | 231 new internal::BaseLayoutManager(root_window)); |
229 SetUsesScreenCoordinates(lock_container); | 232 SetUsesScreenCoordinates(lock_container); |
230 // TODO(beng): stopsevents | 233 // TODO(beng): stopsevents |
(...skipping 135 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
366 // Restore focused or active window if it's still alive. | 369 // Restore focused or active window if it's still alive. |
367 if (focused && tracker.Contains(focused) && dst->Contains(focused)) { | 370 if (focused && tracker.Contains(focused) && dst->Contains(focused)) { |
368 dst->GetFocusManager()->SetFocusedWindow(focused, NULL); | 371 dst->GetFocusManager()->SetFocusedWindow(focused, NULL); |
369 } else if (active && tracker.Contains(active) && dst->Contains(active)) { | 372 } else if (active && tracker.Contains(active) && dst->Contains(active)) { |
370 activation_client->ActivateWindow(active); | 373 activation_client->ActivateWindow(active); |
371 } | 374 } |
372 } | 375 } |
373 | 376 |
374 } // namespace internal | 377 } // namespace internal |
375 } // namespace ash | 378 } // namespace ash |
OLD | NEW |