diff options
Diffstat (limited to 'ash/accelerators')
-rw-r--r-- | ash/accelerators/accelerator_controller.cc | 6 | ||||
-rw-r--r-- | ash/accelerators/accelerator_controller_unittest.cc | 15 |
2 files changed, 19 insertions, 2 deletions
diff --git a/ash/accelerators/accelerator_controller.cc b/ash/accelerators/accelerator_controller.cc index 31b5e92..4817c59 100644 --- a/ash/accelerators/accelerator_controller.cc +++ b/ash/accelerators/accelerator_controller.cc @@ -556,9 +556,11 @@ bool AcceleratorController::PerformAction(int action, // We totally ignore this accelerator. return false; } - if (shell->caps_lock_delegate()->IsCapsLockEnabled()) + if (shell->caps_lock_delegate()->IsCapsLockEnabled()) { shell->caps_lock_delegate()->SetCapsLockEnabled(false); - return true; + return true; + } + return false; case TOGGLE_CAPS_LOCK: shell->caps_lock_delegate()->ToggleCapsLock(); return true; diff --git a/ash/accelerators/accelerator_controller_unittest.cc b/ash/accelerators/accelerator_controller_unittest.cc index 4d8c8ff..5482d25 100644 --- a/ash/accelerators/accelerator_controller_unittest.cc +++ b/ash/accelerators/accelerator_controller_unittest.cc @@ -632,6 +632,21 @@ TEST_F(AcceleratorControllerTest, GlobalAccelerators) { EXPECT_FALSE(GetController()->Process( ReleaseAccelerator(ui::VKEY_A, ui::EF_SHIFT_DOWN))); EXPECT_TRUE(delegate->IsCapsLockEnabled()); + + // Do not consume shift keyup when caps lock is off. + delegate->SetCapsLockEnabled(false); + EXPECT_FALSE(GetController()->Process( + ui::Accelerator(ui::VKEY_LSHIFT, ui::EF_NONE))); + EXPECT_FALSE(GetController()->Process( + ReleaseAccelerator(ui::VKEY_LSHIFT, ui::EF_NONE))); + EXPECT_FALSE(GetController()->Process( + ui::Accelerator(ui::VKEY_RSHIFT, ui::EF_NONE))); + EXPECT_FALSE(GetController()->Process( + ReleaseAccelerator(ui::VKEY_RSHIFT, ui::EF_NONE))); + EXPECT_FALSE(GetController()->Process( + ui::Accelerator(ui::VKEY_SHIFT, ui::EF_NONE))); + EXPECT_FALSE(GetController()->Process( + ReleaseAccelerator(ui::VKEY_SHIFT, ui::EF_NONE))); } // ToggleCapsLock { |