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/power_button_controller.h" | 5 #include "ash/wm/power_button_controller.h" |
6 | 6 |
7 #include "ash/ash_switches.h" | 7 #include "ash/ash_switches.h" |
8 #include "ash/shell.h" | 8 #include "ash/shell.h" |
9 #include "ash/shell_delegate.h" | 9 #include "ash/shell_delegate.h" |
10 #include "ash/shell_window_ids.h" | 10 #include "ash/shell_window_ids.h" |
(...skipping 146 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
157 void RestoreWindow(aura::Window* window) { | 157 void RestoreWindow(aura::Window* window) { |
158 window->layer()->SetTransform(ui::Transform()); | 158 window->layer()->SetTransform(ui::Transform()); |
159 window->layer()->SetOpacity(1.0); | 159 window->layer()->SetOpacity(1.0); |
160 } | 160 } |
161 | 161 |
162 // Fills |containers| with the containers described by |group|. | 162 // Fills |containers| with the containers described by |group|. |
163 void GetContainers(PowerButtonController::ContainerGroup group, | 163 void GetContainers(PowerButtonController::ContainerGroup group, |
164 aura::Window::Windows* containers) { | 164 aura::Window::Windows* containers) { |
165 aura::RootWindow* root_window = Shell::GetPrimaryRootWindow(); | 165 aura::RootWindow* root_window = Shell::GetPrimaryRootWindow(); |
166 | 166 |
| 167 aura::Window* wallpaper_container = Shell::GetContainer( |
| 168 root_window, |
| 169 internal::kShellWindowId_DesktopBackgroundContainer); |
| 170 aura::Window* lock_wallpaper_container = Shell::GetContainer( |
| 171 root_window, |
| 172 internal::kShellWindowId_LockScreenBackgroundContainer); |
| 173 |
167 aura::Window* non_lock_screen_containers = Shell::GetContainer( | 174 aura::Window* non_lock_screen_containers = Shell::GetContainer( |
168 root_window, | 175 root_window, |
169 internal::kShellWindowId_NonLockScreenContainersContainer); | 176 internal::kShellWindowId_NonLockScreenContainersContainer); |
170 aura::Window* lock_screen_containers = Shell::GetContainer( | 177 aura::Window* lock_screen_containers = Shell::GetContainer( |
171 root_window, | 178 root_window, |
172 internal::kShellWindowId_LockScreenContainersContainer); | 179 internal::kShellWindowId_LockScreenContainersContainer); |
173 aura::Window* lock_screen_related_containers = Shell::GetContainer( | 180 aura::Window* lock_screen_related_containers = Shell::GetContainer( |
174 root_window, | 181 root_window, |
175 internal::kShellWindowId_LockScreenRelatedContainersContainer); | 182 internal::kShellWindowId_LockScreenRelatedContainersContainer); |
176 | 183 |
177 containers->clear(); | 184 containers->clear(); |
178 switch (group) { | 185 switch (group) { |
179 case PowerButtonController::ALL_CONTAINERS: | 186 case PowerButtonController::ALL_CONTAINERS: |
| 187 containers->push_back(wallpaper_container); |
180 containers->push_back(non_lock_screen_containers); | 188 containers->push_back(non_lock_screen_containers); |
| 189 containers->push_back(lock_wallpaper_container); |
181 containers->push_back(lock_screen_containers); | 190 containers->push_back(lock_screen_containers); |
182 containers->push_back(lock_screen_related_containers); | 191 containers->push_back(lock_screen_related_containers); |
183 break; | 192 break; |
184 case PowerButtonController::SCREEN_LOCKER_CONTAINERS: | 193 case PowerButtonController::SCREEN_LOCKER_CONTAINERS_EXCEPT_WALLPAPER: |
185 containers->push_back(lock_screen_containers); | 194 containers->push_back(lock_screen_containers); |
186 break; | 195 break; |
187 case PowerButtonController::SCREEN_LOCKER_AND_RELATED_CONTAINERS: | 196 case PowerButtonController::SCREEN_LOCKER_AND_RELATED_CONTAINERS: |
| 197 containers->push_back(lock_wallpaper_container); |
188 containers->push_back(lock_screen_containers); | 198 containers->push_back(lock_screen_containers); |
189 containers->push_back(lock_screen_related_containers); | 199 containers->push_back(lock_screen_related_containers); |
190 break; | 200 break; |
191 case PowerButtonController::ALL_BUT_SCREEN_LOCKER_AND_RELATED_CONTAINERS: | 201 case PowerButtonController::ALL_BUT_SCREEN_LOCKER_AND_RELATED_CONTAINERS: |
| 202 // Doesn't include wallpaper_container as it is now excluded from |
| 203 // these animations (i.e. restore). |
| 204 // New lock/shutdown transition may change that. |
192 containers->push_back(non_lock_screen_containers); | 205 containers->push_back(non_lock_screen_containers); |
193 break; | 206 break; |
194 default: | 207 default: |
195 NOTREACHED() << "Unhandled container group " << group; | 208 NOTREACHED() << "Unhandled container group " << group; |
196 } | 209 } |
197 } | 210 } |
198 | 211 |
199 // Apply animation |type| to all containers described by |group|. | 212 // Apply animation |type| to all containers described by |group|. |
200 void StartAnimation(PowerButtonController::ContainerGroup group, | 213 void StartAnimation(PowerButtonController::ContainerGroup group, |
201 PowerButtonController::AnimationType type) { | 214 PowerButtonController::AnimationType type) { |
(...skipping 124 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
326 | 339 |
327 if (!locked && login_status_ == user::LOGGED_IN_LOCKED) { | 340 if (!locked && login_status_ == user::LOGGED_IN_LOCKED) { |
328 login_status_ = unlocked_login_status_; | 341 login_status_ = unlocked_login_status_; |
329 unlocked_login_status_ = user::LOGGED_IN_NONE; | 342 unlocked_login_status_ = user::LOGGED_IN_NONE; |
330 } else { | 343 } else { |
331 unlocked_login_status_ = login_status_; | 344 unlocked_login_status_ = login_status_; |
332 login_status_ = user::LOGGED_IN_LOCKED; | 345 login_status_ = user::LOGGED_IN_LOCKED; |
333 } | 346 } |
334 | 347 |
335 if (locked) { | 348 if (locked) { |
336 StartAnimation(SCREEN_LOCKER_CONTAINERS, ANIMATION_FADE_IN); | 349 StartAnimation(SCREEN_LOCKER_CONTAINERS_EXCEPT_WALLPAPER, |
| 350 ANIMATION_FADE_IN); |
337 lock_timer_.Stop(); | 351 lock_timer_.Stop(); |
338 lock_fail_timer_.Stop(); | 352 lock_fail_timer_.Stop(); |
339 | 353 |
340 if (!has_legacy_power_button_ && power_button_down_) { | 354 if (!has_legacy_power_button_ && power_button_down_) { |
341 lock_to_shutdown_timer_.Stop(); | 355 lock_to_shutdown_timer_.Stop(); |
342 lock_to_shutdown_timer_.Start( | 356 lock_to_shutdown_timer_.Start( |
343 FROM_HERE, | 357 FROM_HERE, |
344 base::TimeDelta::FromMilliseconds(kLockToShutdownTimeoutMs), | 358 base::TimeDelta::FromMilliseconds(kLockToShutdownTimeoutMs), |
345 this, &PowerButtonController::OnLockToShutdownTimeout); | 359 this, &PowerButtonController::OnLockToShutdownTimeout); |
346 } | 360 } |
(...skipping 14 matching lines...) Expand all Loading... |
361 | 375 |
362 // Ensure that the background layer is visible -- if the screen was locked via | 376 // Ensure that the background layer is visible -- if the screen was locked via |
363 // the wrench menu, we won't have already shown the background as part of the | 377 // the wrench menu, we won't have already shown the background as part of the |
364 // slow-close animation. | 378 // slow-close animation. |
365 ShowBackgroundLayer(); | 379 ShowBackgroundLayer(); |
366 | 380 |
367 StartAnimation(ALL_BUT_SCREEN_LOCKER_AND_RELATED_CONTAINERS, | 381 StartAnimation(ALL_BUT_SCREEN_LOCKER_AND_RELATED_CONTAINERS, |
368 ANIMATION_FAST_CLOSE); | 382 ANIMATION_FAST_CLOSE); |
369 | 383 |
370 // Hide the screen locker containers so we can make them fade in later. | 384 // Hide the screen locker containers so we can make them fade in later. |
371 StartAnimation(SCREEN_LOCKER_CONTAINERS, ANIMATION_HIDE); | 385 StartAnimation(SCREEN_LOCKER_CONTAINERS_EXCEPT_WALLPAPER, |
| 386 ANIMATION_HIDE); |
372 } | 387 } |
373 | 388 |
374 void PowerButtonController::OnPowerButtonEvent( | 389 void PowerButtonController::OnPowerButtonEvent( |
375 bool down, const base::TimeTicks& timestamp) { | 390 bool down, const base::TimeTicks& timestamp) { |
376 power_button_down_ = down; | 391 power_button_down_ = down; |
377 | 392 |
378 if (shutting_down_) | 393 if (shutting_down_) |
379 return; | 394 return; |
380 | 395 |
381 // Avoid starting the lock/shutdown sequence if the power button is pressed | 396 // Avoid starting the lock/shutdown sequence if the power button is pressed |
(...skipping 198 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
580 root_layer->StackAtBottom(background_layer_.get()); | 595 root_layer->StackAtBottom(background_layer_.get()); |
581 } | 596 } |
582 background_layer_->SetVisible(true); | 597 background_layer_->SetVisible(true); |
583 } | 598 } |
584 | 599 |
585 void PowerButtonController::HideBackgroundLayer() { | 600 void PowerButtonController::HideBackgroundLayer() { |
586 background_layer_.reset(); | 601 background_layer_.reset(); |
587 } | 602 } |
588 | 603 |
589 } // namespace ash | 604 } // namespace ash |
OLD | NEW |