diff options
author | nkostylev@chromium.org <nkostylev@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2014-06-06 13:51:13 +0000 |
---|---|---|
committer | nkostylev@chromium.org <nkostylev@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2014-06-06 13:51:13 +0000 |
commit | 68d513333bbb95893035255a1646b38c2676e60e (patch) | |
tree | 806934e5c9ea083ac4e6f0442a446d4ca93ceda9 /ash/root_window_controller.cc | |
parent | 7a2a6d8000151f9c9b7c9e28af8cc5b192d3b720 (diff) | |
download | chromium_src-68d513333bbb95893035255a1646b38c2676e60e.zip chromium_src-68d513333bbb95893035255a1646b38c2676e60e.tar.gz chromium_src-68d513333bbb95893035255a1646b38c2676e60e.tar.bz2 |
Add LockLayoutManager responsible for lock container (login/lock).
Previously WorkspaceManager was used for this container which resulted in various
issues when login screen window was not full screen and was supposed to be resized
only by virtual keyboard container. Otherwise panels and shelf were taken into account
even though they are stacked below the lock container.
This CL improves previous fix
https://codereview.chromium.org/231123002
Disable this layout manager with --ash-disable-lock-layout-manager
Verified that existing out-of-box/login/multi-profiles login/lock* virtual keyboard
overscroll/non-overscroll configurations work fine.
Non-overscroll lock screen configuration is updated to use the same behavior as
login in https://codereview.chromium.org/320523003
BUG=375666
TEST=LockLayoutManager.*, existing tests
Review URL: https://codereview.chromium.org/254673004
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@275431 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'ash/root_window_controller.cc')
-rw-r--r-- | ash/root_window_controller.cc | 9 |
1 files changed, 8 insertions, 1 deletions
diff --git a/ash/root_window_controller.cc b/ash/root_window_controller.cc index 1fe7c37..5763b3d 100644 --- a/ash/root_window_controller.cc +++ b/ash/root_window_controller.cc @@ -34,6 +34,7 @@ #include "ash/touch/touch_observer_hud.h" #include "ash/wm/always_on_top_controller.h" #include "ash/wm/dock/docked_window_layout_manager.h" +#include "ash/wm/lock_layout_manager.h" #include "ash/wm/panels/attached_panel_window_targeter.h" #include "ash/wm/panels/panel_layout_manager.h" #include "ash/wm/panels/panel_window_event_handler.h" @@ -1011,7 +1012,13 @@ void RootWindowController::CreateContainersInRootWindow( kShellWindowId_LockScreenContainer, "LockScreenContainer", lock_screen_containers); - lock_container->SetLayoutManager(new WorkspaceLayoutManager(lock_container)); + if (CommandLine::ForCurrentProcess()->HasSwitch( + switches::kAshDisableLockLayoutManager)) { + lock_container->SetLayoutManager( + new WorkspaceLayoutManager(lock_container)); + } else { + lock_container->SetLayoutManager(new LockLayoutManager(lock_container)); + } SetUsesScreenCoordinates(lock_container); // TODO(beng): stopsevents |