summaryrefslogtreecommitdiffstats
path: root/ash
diff options
context:
space:
mode:
authorantrim@chromium.org <antrim@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2012-11-06 17:08:40 +0000
committerantrim@chromium.org <antrim@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2012-11-06 17:08:40 +0000
commit5d1462786d9584a9b1254684aa6d61ac18cc98ce (patch)
tree61fe023a0cac813590a4b21af4a405b19a8c53bb /ash
parent3bb54abfe41bcb02c39cab98d457c7dd0fbb2b75 (diff)
downloadchromium_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.cc3
-rw-r--r--ash/wm/activation_controller_unittest.cc14
-rw-r--r--ash/wm/session_state_controller_impl2.cc3
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();
}