| Index: ash/root_window_controller.cc
|
| diff --git a/ash/root_window_controller.cc b/ash/root_window_controller.cc
|
| index fa9d48bca130556ac1e658299bf707b199017aeb..aceb53403905c9d293c7da2011ef2c1c9f10a3f2 100644
|
| --- a/ash/root_window_controller.cc
|
| +++ b/ash/root_window_controller.cc
|
| @@ -867,37 +867,46 @@ void RootWindowController::InitLayoutManagers() {
|
|
|
| void RootWindowController::CreateContainers() {
|
| WmWindow* root = GetWindow();
|
| + // For screen rotation animation: add a NOT_DRAWN layer in between the
|
| + // root_window's layer and its current children so that we only need to
|
| + // initiate two LayerAnimationSequences. One for the new layers and one for
|
| + // the old layers.
|
| + WmWindow* screen_rotation_container = CreateContainer(
|
| + kShellWindowId_ScreenRotationContainer, "ScreenRotationContainer", root);
|
| +
|
| // 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
|
| - // the other containers are their children.
|
| + // on those containers. These are direct children of the
|
| + // screen_rotation_container window; all of the other containers are their
|
| + // children.
|
|
|
| // The wallpaper container is not part of the lock animation, so it is not
|
| // included in those animate groups. When the screen is locked, the wallpaper
|
| // is moved to the lock screen wallpaper container (and moved back on unlock).
|
| // Ensure that there's an opaque layer occluding the non-lock-screen layers.
|
| - WmWindow* wallpaper_container = CreateContainer(
|
| - kShellWindowId_WallpaperContainer, "WallpaperContainer", root);
|
| + WmWindow* wallpaper_container =
|
| + CreateContainer(kShellWindowId_WallpaperContainer, "WallpaperContainer",
|
| + screen_rotation_container);
|
| wallpaper_container->SetChildWindowVisibilityChangesAnimated();
|
|
|
| - WmWindow* non_lock_screen_containers =
|
| - CreateContainer(kShellWindowId_NonLockScreenContainersContainer,
|
| - "NonLockScreenContainersContainer", root);
|
| + WmWindow* non_lock_screen_containers = CreateContainer(
|
| + kShellWindowId_NonLockScreenContainersContainer,
|
| + "NonLockScreenContainersContainer", screen_rotation_container);
|
| // Clip all windows inside this container, as half pixel of the window's
|
| // texture may become visible when the screen is scaled. crbug.com/368591.
|
| non_lock_screen_containers->SetMasksToBounds(true);
|
|
|
| - WmWindow* lock_wallpaper_containers =
|
| - CreateContainer(kShellWindowId_LockScreenWallpaperContainer,
|
| - "LockScreenWallpaperContainer", root);
|
| + WmWindow* lock_wallpaper_containers = CreateContainer(
|
| + kShellWindowId_LockScreenWallpaperContainer,
|
| + "LockScreenWallpaperContainer", screen_rotation_container);
|
| lock_wallpaper_containers->SetChildWindowVisibilityChangesAnimated();
|
|
|
| - WmWindow* lock_screen_containers =
|
| - CreateContainer(kShellWindowId_LockScreenContainersContainer,
|
| - "LockScreenContainersContainer", root);
|
| - WmWindow* lock_screen_related_containers =
|
| - CreateContainer(kShellWindowId_LockScreenRelatedContainersContainer,
|
| - "LockScreenRelatedContainersContainer", root);
|
| + WmWindow* lock_screen_containers = CreateContainer(
|
| + kShellWindowId_LockScreenContainersContainer,
|
| + "LockScreenContainersContainer", screen_rotation_container);
|
| + WmWindow* lock_screen_related_containers = CreateContainer(
|
| + kShellWindowId_LockScreenRelatedContainersContainer,
|
| + "LockScreenRelatedContainersContainer", screen_rotation_container);
|
|
|
| CreateContainer(kShellWindowId_UnparentedControlContainer,
|
| "UnparentedControlContainer", non_lock_screen_containers);
|
| @@ -1024,13 +1033,14 @@ void RootWindowController::CreateContainers() {
|
| overlay_container->SetBoundsInScreenBehaviorForChildren(
|
| WmWindow::BoundsInScreenBehavior::USE_SCREEN_COORDINATES);
|
|
|
| - WmWindow* mouse_cursor_container = CreateContainer(
|
| - kShellWindowId_MouseCursorContainer, "MouseCursorContainer", root);
|
| + WmWindow* mouse_cursor_container =
|
| + CreateContainer(kShellWindowId_MouseCursorContainer,
|
| + "MouseCursorContainer", screen_rotation_container);
|
| mouse_cursor_container->SetBoundsInScreenBehaviorForChildren(
|
| WmWindow::BoundsInScreenBehavior::USE_SCREEN_COORDINATES);
|
|
|
| CreateContainer(kShellWindowId_PowerButtonAnimationContainer,
|
| - "PowerButtonAnimationContainer", root);
|
| + "PowerButtonAnimationContainer", screen_rotation_container);
|
| }
|
|
|
| void RootWindowController::CreateSystemWallpaper(
|
|
|