diff options
author | nkostylev@chromium.org <nkostylev@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2012-09-05 10:21:07 +0000 |
---|---|---|
committer | nkostylev@chromium.org <nkostylev@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2012-09-05 10:21:07 +0000 |
commit | 4e565304128372540caaf3cf457664c674f6da87 (patch) | |
tree | 0668ce5ac565e5bdd8eaea9227e42e0551042608 /ash/root_window_controller.cc | |
parent | c9c672f06a769462db0eb4fb0412337b3d6aefd9 (diff) | |
download | chromium_src-4e565304128372540caaf3cf457664c674f6da87.zip chromium_src-4e565304128372540caaf3cf457664c674f6da87.tar.gz chromium_src-4e565304128372540caaf3cf457664c674f6da87.tar.bz2 |
Improve existing lock transition - remove black splash.
During screen lock we move wallpaper from normal background
layer to screen lock background layer. That means that both
these layers should be excluded from the lock animations.
Lock background layer (with wallpaper, not black solid color layer)
is included in shutdown animation though.
BUG=144737
TEST=Manual: Lock/Shutdown from login screen/user session using power button / shortcut / UI controls.
Review URL: https://chromiumcodereview.appspot.com/10909008
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@154936 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'ash/root_window_controller.cc')
-rw-r--r-- | ash/root_window_controller.cc | 34 |
1 files changed, 20 insertions, 14 deletions
diff --git a/ash/root_window_controller.cc b/ash/root_window_controller.cc index c6c047f..28132ea 100644 --- a/ash/root_window_controller.cc +++ b/ash/root_window_controller.cc @@ -132,12 +132,31 @@ void SetUsesScreenCoordinates(aura::Window* container) { void CreateContainersInRootWindow(aura::RootWindow* root_window) { // These containers are just used by PowerButtonController to animate groups // of containers simultaneously without messing up the current transformations - // on those containers. These are direct children of the root window; all of + // on those containers. These are direct children of the root window; all of // the other containers are their children. + // Desktop and lock screen background containers are not part of the + // lock animation so they are not included in those animate groups. + // When screen is locked desktop background is moved to lock screen background + // container (moved back on unlock). We want to make sure that there's an + // opaque layer occluding the non-lock-screen layers. + + aura::Window* desktop_background_containers = CreateContainer( + internal::kShellWindowId_DesktopBackgroundContainer, + "DesktopBackgroundContainer", + root_window); + SetChildWindowVisibilityChangesAnimated(desktop_background_containers); + aura::Window* non_lock_screen_containers = CreateContainer( internal::kShellWindowId_NonLockScreenContainersContainer, "NonLockScreenContainersContainer", root_window); + + aura::Window* lock_background_containers = CreateContainer( + internal::kShellWindowId_LockScreenBackgroundContainer, + "LockScreenBackgroundContainer", + root_window); + SetChildWindowVisibilityChangesAnimated(lock_background_containers); + aura::Window* lock_screen_containers = CreateContainer( internal::kShellWindowId_LockScreenContainersContainer, "LockScreenContainersContainer", @@ -154,12 +173,6 @@ void CreateContainersInRootWindow(aura::RootWindow* root_window) { CreateContainer(internal::kShellWindowId_SystemBackgroundContainer, "SystemBackgroundContainer", non_lock_screen_containers); - aura::Window* desktop_background_containers = CreateContainer( - internal::kShellWindowId_DesktopBackgroundContainer, - "DesktopBackgroundContainer", - non_lock_screen_containers); - SetChildWindowVisibilityChangesAnimated(desktop_background_containers); - aura::Window* default_container = CreateContainer( internal::kShellWindowId_DefaultContainer, "DefaultContainer", @@ -211,13 +224,6 @@ void CreateContainersInRootWindow(aura::RootWindow* root_window) { non_lock_screen_containers); SetUsesScreenCoordinates(input_method_container); - aura::Window* lock_background_containers = CreateContainer( - internal::kShellWindowId_LockScreenBackgroundContainer, - "LockScreenBackgroundContainer", - lock_screen_containers); - - SetChildWindowVisibilityChangesAnimated(lock_background_containers); - // TODO(beng): Figure out if we can make this use // SystemModalContainerEventFilter instead of stops_event_propagation. aura::Window* lock_container = CreateContainer( |