diff options
author | antrim@chromium.org <antrim@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2012-11-06 17:08:40 +0000 |
---|---|---|
committer | antrim@chromium.org <antrim@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2012-11-06 17:08:40 +0000 |
commit | 5d1462786d9584a9b1254684aa6d61ac18cc98ce (patch) | |
tree | 61fe023a0cac813590a4b21af4a405b19a8c53bb /ash | |
parent | 3bb54abfe41bcb02c39cab98d457c7dd0fbb2b75 (diff) | |
download | chromium_src-5d1462786d9584a9b1254684aa6d61ac18cc98ce.zip chromium_src-5d1462786d9584a9b1254684aa6d61ac18cc98ce.tar.gz chromium_src-5d1462786d9584a9b1254684aa6d61ac18cc98ce.tar.bz2 |
Fix no focus issue on second lock.
Fix partial lock / Launcher issue
BUG=138171
Review URL: https://chromiumcodereview.appspot.com/11362032
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@166224 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'ash')
-rw-r--r-- | ash/wm/activation_controller.cc | 3 | ||||
-rw-r--r-- | ash/wm/activation_controller_unittest.cc | 14 | ||||
-rw-r--r-- | ash/wm/session_state_controller_impl2.cc | 3 |
3 files changed, 18 insertions, 2 deletions
diff --git a/ash/wm/activation_controller.cc b/ash/wm/activation_controller.cc index c07b712..cb22809 100644 --- a/ash/wm/activation_controller.cc +++ b/ash/wm/activation_controller.cc @@ -97,7 +97,8 @@ bool VisibilityMatches(aura::Window* window, ActivateVisibilityType type) { window->TargetVisibility(); return visible || wm::IsWindowMinimized(window) || (window->TargetVisibility() && - window->parent()->id() == kShellWindowId_WorkspaceContainer); + (window->parent()->id() == kShellWindowId_WorkspaceContainer || + window->parent()->id() == kShellWindowId_LockScreenContainer)); } // Returns true if |window| can be activated or deactivated. diff --git a/ash/wm/activation_controller_unittest.cc b/ash/wm/activation_controller_unittest.cc index e28dc78..025a250 100644 --- a/ash/wm/activation_controller_unittest.cc +++ b/ash/wm/activation_controller_unittest.cc @@ -502,5 +502,19 @@ TEST_F(ActivationControllerTest, DontActivateWindowWhenInSystemModalDialog) { EXPECT_TRUE(wm::IsActiveWindow(normal_window.get())); } +// Verifies that a lock window can get focus even if lock +// container is not visible (e.g. before animating it). +TEST_F(ActivationControllerTest, ActivateLockScreen) { + aura::Window* lock_container = + Shell::GetContainer(Shell::GetPrimaryRootWindow(), c3); + aura::test::TestWindowDelegate wd; + scoped_ptr<aura::Window> w1(aura::test::CreateTestWindowWithDelegate( + &wd, -1, gfx::Rect(50, 50, 50, 50), lock_container)); + + lock_container->layer()->SetVisible(false); + w1->Focus(); + EXPECT_TRUE(w1->HasFocus()); +} + } // namespace test } // namespace ash diff --git a/ash/wm/session_state_controller_impl2.cc b/ash/wm/session_state_controller_impl2.cc index f239fd6..3e0def0 100644 --- a/ash/wm/session_state_controller_impl2.cc +++ b/ash/wm/session_state_controller_impl2.cc @@ -153,7 +153,8 @@ void SessionStateControllerImpl2::CancelLockAnimation() { return; shutdown_after_lock_ = false; animator_->StartAnimation( - internal::SessionStateAnimator::NON_LOCK_SCREEN_CONTAINERS, + internal::SessionStateAnimator::NON_LOCK_SCREEN_CONTAINERS | + internal::SessionStateAnimator::LAUNCHER, internal::SessionStateAnimator::ANIMATION_LOWER); lock_timer_.Stop(); } |