| Index: ash/wm/power_button_controller.cc
|
| diff --git a/ash/wm/power_button_controller.cc b/ash/wm/power_button_controller.cc
|
| index 55d59931ee8f75ef047a408b53b320f0f9914044..a3fac854fff013a155f8521a2baa21da152e2808 100644
|
| --- a/ash/wm/power_button_controller.cc
|
| +++ b/ash/wm/power_button_controller.cc
|
| @@ -159,48 +159,43 @@ void RestoreWindow(aura::Window* window) {
|
| window->layer()->SetOpacity(1.0);
|
| }
|
|
|
| -// Fills |containers| with the containers described by |group|.
|
| -void GetContainers(PowerButtonController::ContainerGroup group,
|
| - aura::Window::Windows* containers) {
|
| +// Fills |containers| with the containers described by |container_mask|.
|
| +void GetContainers(int container_mask, aura::Window::Windows* containers) {
|
| aura::RootWindow* root_window = Shell::GetPrimaryRootWindow();
|
| -
|
| - aura::Window* non_lock_screen_containers = Shell::GetContainer(
|
| - root_window,
|
| - internal::kShellWindowId_NonLockScreenContainersContainer);
|
| - aura::Window* lock_screen_containers = Shell::GetContainer(
|
| - root_window,
|
| - internal::kShellWindowId_LockScreenContainersContainer);
|
| - aura::Window* lock_screen_related_containers = Shell::GetContainer(
|
| - root_window,
|
| - internal::kShellWindowId_LockScreenRelatedContainersContainer);
|
| -
|
| containers->clear();
|
| - switch (group) {
|
| - case PowerButtonController::ALL_CONTAINERS:
|
| - containers->push_back(non_lock_screen_containers);
|
| - containers->push_back(lock_screen_containers);
|
| - containers->push_back(lock_screen_related_containers);
|
| - break;
|
| - case PowerButtonController::SCREEN_LOCKER_CONTAINERS:
|
| - containers->push_back(lock_screen_containers);
|
| - break;
|
| - case PowerButtonController::SCREEN_LOCKER_AND_RELATED_CONTAINERS:
|
| - containers->push_back(lock_screen_containers);
|
| - containers->push_back(lock_screen_related_containers);
|
| - break;
|
| - case PowerButtonController::ALL_BUT_SCREEN_LOCKER_AND_RELATED_CONTAINERS:
|
| - containers->push_back(non_lock_screen_containers);
|
| - break;
|
| - default:
|
| - NOTREACHED() << "Unhandled container group " << group;
|
| +
|
| + if (container_mask & PowerButtonController::DESKTOP_WALLPAPER) {
|
| + containers->push_back(Shell::GetContainer(
|
| + root_window,
|
| + internal::kShellWindowId_DesktopBackgroundContainer));
|
| + }
|
| + if (container_mask & PowerButtonController::NON_LOCK_SCREEN_CONTAINERS) {
|
| + containers->push_back(Shell::GetContainer(
|
| + root_window,
|
| + internal::kShellWindowId_NonLockScreenContainersContainer));
|
| + }
|
| + if (container_mask & PowerButtonController::LOCK_SCREEN_WALLPAPER) {
|
| + containers->push_back(Shell::GetContainer(
|
| + root_window,
|
| + internal::kShellWindowId_LockScreenBackgroundContainer));
|
| + }
|
| + if (container_mask & PowerButtonController::LOCK_SCREEN_CONTAINERS) {
|
| + containers->push_back(Shell::GetContainer(
|
| + root_window,
|
| + internal::kShellWindowId_LockScreenContainersContainer));
|
| + }
|
| + if (container_mask & PowerButtonController::LOCK_SCREEN_RELATED_CONTAINERS) {
|
| + containers->push_back(Shell::GetContainer(
|
| + root_window,
|
| + internal::kShellWindowId_LockScreenRelatedContainersContainer));
|
| }
|
| }
|
|
|
| -// Apply animation |type| to all containers described by |group|.
|
| -void StartAnimation(PowerButtonController::ContainerGroup group,
|
| +// Apply animation |type| to all containers described by |container_mask|.
|
| +void StartAnimation(int container_mask,
|
| PowerButtonController::AnimationType type) {
|
| aura::Window::Windows containers;
|
| - GetContainers(group, &containers);
|
| + GetContainers(container_mask, &containers);
|
|
|
| for (aura::Window::Windows::const_iterator it = containers.begin();
|
| it != containers.end(); ++it) {
|
| @@ -233,9 +228,9 @@ void StartAnimation(PowerButtonController::ContainerGroup group,
|
| } // namespace
|
|
|
| bool PowerButtonController::TestApi::ContainerGroupIsAnimated(
|
| - ContainerGroup group, AnimationType type) const {
|
| + int container_mask, AnimationType type) const {
|
| aura::Window::Windows containers;
|
| - GetContainers(group, &containers);
|
| + GetContainers(container_mask, &containers);
|
| for (aura::Window::Windows::const_iterator it = containers.begin();
|
| it != containers.end(); ++it) {
|
| aura::Window* window = *it;
|
| @@ -285,6 +280,20 @@ gfx::Rect PowerButtonController::TestApi::GetBackgroundLayerBounds() const {
|
| return layer ? layer->bounds() : gfx::Rect();
|
| }
|
|
|
| +// static
|
| +int PowerButtonController::GetAllContainersMask() {
|
| + return PowerButtonController::DESKTOP_WALLPAPER |
|
| + PowerButtonController::NON_LOCK_SCREEN_CONTAINERS |
|
| + GetAllScreenLockContainersMask();
|
| +}
|
| +
|
| +// static
|
| +int PowerButtonController::GetAllScreenLockContainersMask() {
|
| + return PowerButtonController::LOCK_SCREEN_WALLPAPER |
|
| + PowerButtonController::LOCK_SCREEN_CONTAINERS |
|
| + PowerButtonController::LOCK_SCREEN_RELATED_CONTAINERS;
|
| +}
|
| +
|
| PowerButtonController::PowerButtonController()
|
| : login_status_(user::LOGGED_IN_NONE),
|
| unlocked_login_status_(user::LOGGED_IN_NONE),
|
| @@ -316,7 +325,7 @@ void PowerButtonController::OnAppTerminating() {
|
| shell->env_filter()->set_update_cursor_visibility(false);
|
| shell->cursor_manager()->ShowCursor(false);
|
| ShowBackgroundLayer();
|
| - StartAnimation(ALL_CONTAINERS, ANIMATION_HIDE);
|
| + StartAnimation(GetAllContainersMask(), ANIMATION_HIDE);
|
| }
|
| }
|
|
|
| @@ -333,7 +342,7 @@ void PowerButtonController::OnLockStateChanged(bool locked) {
|
| }
|
|
|
| if (locked) {
|
| - StartAnimation(SCREEN_LOCKER_CONTAINERS, ANIMATION_FADE_IN);
|
| + StartAnimation(LOCK_SCREEN_CONTAINERS, ANIMATION_FADE_IN);
|
| lock_timer_.Stop();
|
| lock_fail_timer_.Stop();
|
|
|
| @@ -345,8 +354,7 @@ void PowerButtonController::OnLockStateChanged(bool locked) {
|
| this, &PowerButtonController::OnLockToShutdownTimeout);
|
| }
|
| } else {
|
| - StartAnimation(ALL_BUT_SCREEN_LOCKER_AND_RELATED_CONTAINERS,
|
| - ANIMATION_RESTORE);
|
| + StartAnimation(NON_LOCK_SCREEN_CONTAINERS, ANIMATION_RESTORE);
|
| HideBackgroundLayer();
|
| }
|
| }
|
| @@ -364,11 +372,10 @@ void PowerButtonController::OnStartingLock() {
|
| // slow-close animation.
|
| ShowBackgroundLayer();
|
|
|
| - StartAnimation(ALL_BUT_SCREEN_LOCKER_AND_RELATED_CONTAINERS,
|
| - ANIMATION_FAST_CLOSE);
|
| + StartAnimation(NON_LOCK_SCREEN_CONTAINERS, ANIMATION_FAST_CLOSE);
|
|
|
| // Hide the screen locker containers so we can make them fade in later.
|
| - StartAnimation(SCREEN_LOCKER_CONTAINERS, ANIMATION_HIDE);
|
| + StartAnimation(LOCK_SCREEN_CONTAINERS, ANIMATION_HIDE);
|
| }
|
|
|
| void PowerButtonController::OnPowerButtonEvent(
|
| @@ -390,8 +397,7 @@ void PowerButtonController::OnPowerButtonEvent(
|
| if (down) {
|
| ShowBackgroundLayer();
|
| if (LoggedInAsNonGuest() && login_status_ != user::LOGGED_IN_LOCKED) {
|
| - StartAnimation(ALL_BUT_SCREEN_LOCKER_AND_RELATED_CONTAINERS,
|
| - ANIMATION_SLOW_CLOSE);
|
| + StartAnimation(NON_LOCK_SCREEN_CONTAINERS, ANIMATION_SLOW_CLOSE);
|
| OnLockTimeout();
|
| } else {
|
| OnShutdownTimeout();
|
| @@ -411,7 +417,7 @@ void PowerButtonController::OnPowerButtonEvent(
|
| if (lock_timer_.IsRunning() || shutdown_timer_.IsRunning())
|
| StartAnimation(
|
| (login_status_ == user::LOGGED_IN_LOCKED) ?
|
| - SCREEN_LOCKER_AND_RELATED_CONTAINERS : ALL_CONTAINERS,
|
| + GetAllScreenLockContainersMask() : GetAllContainersMask(),
|
| ANIMATION_UNDO_SLOW_CLOSE);
|
|
|
| // Drop the background layer after the undo animation finishes.
|
| @@ -450,8 +456,7 @@ void PowerButtonController::OnLockButtonEvent(
|
| StartLockTimer();
|
| } else {
|
| if (lock_timer_.IsRunning()) {
|
| - StartAnimation(ALL_BUT_SCREEN_LOCKER_AND_RELATED_CONTAINERS,
|
| - ANIMATION_UNDO_SLOW_CLOSE);
|
| + StartAnimation(NON_LOCK_SCREEN_CONTAINERS, ANIMATION_UNDO_SLOW_CLOSE);
|
| hide_background_layer_timer_.Stop();
|
| hide_background_layer_timer_.Start(
|
| FROM_HERE,
|
| @@ -499,8 +504,7 @@ void PowerButtonController::OnLockTimeout() {
|
| void PowerButtonController::OnLockFailTimeout() {
|
| DCHECK_NE(login_status_, user::LOGGED_IN_LOCKED);
|
| LOG(ERROR) << "Screen lock request timed out";
|
| - StartAnimation(ALL_BUT_SCREEN_LOCKER_AND_RELATED_CONTAINERS,
|
| - ANIMATION_RESTORE);
|
| + StartAnimation(NON_LOCK_SCREEN_CONTAINERS, ANIMATION_RESTORE);
|
| HideBackgroundLayer();
|
| }
|
|
|
| @@ -521,8 +525,7 @@ void PowerButtonController::OnRealShutdownTimeout() {
|
|
|
| void PowerButtonController::StartLockTimer() {
|
| ShowBackgroundLayer();
|
| - StartAnimation(ALL_BUT_SCREEN_LOCKER_AND_RELATED_CONTAINERS,
|
| - ANIMATION_SLOW_CLOSE);
|
| + StartAnimation(NON_LOCK_SCREEN_CONTAINERS, ANIMATION_SLOW_CLOSE);
|
| lock_timer_.Stop();
|
| lock_timer_.Start(FROM_HERE,
|
| base::TimeDelta::FromMilliseconds(kSlowCloseAnimMs),
|
| @@ -531,7 +534,7 @@ void PowerButtonController::StartLockTimer() {
|
|
|
| void PowerButtonController::StartShutdownTimer() {
|
| ShowBackgroundLayer();
|
| - StartAnimation(ALL_CONTAINERS, ANIMATION_SLOW_CLOSE);
|
| + StartAnimation(GetAllContainersMask(), ANIMATION_SLOW_CLOSE);
|
| shutdown_timer_.Stop();
|
| shutdown_timer_.Start(
|
| FROM_HERE,
|
| @@ -552,11 +555,10 @@ void PowerButtonController::StartShutdownAnimationAndRequestShutdown() {
|
| // Hide the other containers before starting the animation.
|
| // ANIMATION_FAST_CLOSE will make the screen locker windows partially
|
| // transparent, and we don't want the other windows to show through.
|
| - StartAnimation(ALL_BUT_SCREEN_LOCKER_AND_RELATED_CONTAINERS,
|
| - ANIMATION_HIDE);
|
| - StartAnimation(SCREEN_LOCKER_AND_RELATED_CONTAINERS, ANIMATION_FAST_CLOSE);
|
| + StartAnimation(NON_LOCK_SCREEN_CONTAINERS, ANIMATION_HIDE);
|
| + StartAnimation(GetAllScreenLockContainersMask(), ANIMATION_FAST_CLOSE);
|
| } else {
|
| - StartAnimation(ALL_CONTAINERS, ANIMATION_FAST_CLOSE);
|
| + StartAnimation(GetAllContainersMask(), ANIMATION_FAST_CLOSE);
|
| }
|
|
|
| real_shutdown_timer_.Start(
|
|
|