summaryrefslogtreecommitdiffstats
path: root/ash/root_window_controller.cc
diff options
context:
space:
mode:
authornkostylev@chromium.org <nkostylev@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2012-09-05 10:21:07 +0000
committernkostylev@chromium.org <nkostylev@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2012-09-05 10:21:07 +0000
commit4e565304128372540caaf3cf457664c674f6da87 (patch)
tree0668ce5ac565e5bdd8eaea9227e42e0551042608 /ash/root_window_controller.cc
parentc9c672f06a769462db0eb4fb0412337b3d6aefd9 (diff)
downloadchromium_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.cc34
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(