summaryrefslogtreecommitdiffstats
path: root/ash/accelerators
diff options
context:
space:
mode:
Diffstat (limited to 'ash/accelerators')
-rw-r--r--ash/accelerators/accelerator_controller.cc6
-rw-r--r--ash/accelerators/accelerator_controller_unittest.cc15
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
{