diff options
author | mazda@chromium.org <mazda@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2012-08-23 01:50:16 +0000 |
---|---|---|
committer | mazda@chromium.org <mazda@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2012-08-23 01:50:16 +0000 |
commit | 646228a9066b7a3ad0c3a1b346f0e634e137fe71 (patch) | |
tree | 3ebe3799be8a166a1db818c60cb7b905e26bb5cc /ash | |
parent | 3a8e6194ab43a9a37c08423bfda2c0e461982978 (diff) | |
download | chromium_src-646228a9066b7a3ad0c3a1b346f0e634e137fe71.zip chromium_src-646228a9066b7a3ad0c3a1b346f0e634e137fe71.tar.gz chromium_src-646228a9066b7a3ad0c3a1b346f0e634e137fe71.tar.bz2 |
Make caps lock disabled on shift release.
BUG=138575
TEST=Manual
Review URL: https://chromiumcodereview.appspot.com/10831384
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@152915 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'ash')
-rw-r--r-- | ash/accelerators/accelerator_controller.cc | 5 | ||||
-rw-r--r-- | ash/accelerators/accelerator_controller_unittest.cc | 20 | ||||
-rw-r--r-- | ash/accelerators/accelerator_table.cc | 5 | ||||
-rw-r--r-- | ash/accelerators/accelerator_table.h | 1 |
4 files changed, 31 insertions, 0 deletions
diff --git a/ash/accelerators/accelerator_controller.cc b/ash/accelerators/accelerator_controller.cc index 075e656..8948851 100644 --- a/ash/accelerators/accelerator_controller.cc +++ b/ash/accelerators/accelerator_controller.cc @@ -476,6 +476,11 @@ bool AcceleratorController::PerformAction(int action, return false; ash::Shell::GetInstance()->ToggleAppList(); return true; + case DISABLE_CAPS_LOCK: + // TODO(mazda): Handle this using |caps_lock_delegate_|. + if (shell->tray_delegate()->IsCapsLockOn()) + shell->tray_delegate()->SetCapsLockEnabled(false); + return true; case TOGGLE_CAPS_LOCK: if (caps_lock_delegate_.get()) return caps_lock_delegate_->HandleToggleCapsLock(); diff --git a/ash/accelerators/accelerator_controller_unittest.cc b/ash/accelerators/accelerator_controller_unittest.cc index 7bf1c13..d78b750 100644 --- a/ash/accelerators/accelerator_controller_unittest.cc +++ b/ash/accelerators/accelerator_controller_unittest.cc @@ -600,6 +600,26 @@ TEST_F(AcceleratorControllerTest, GlobalAccelerators) { EXPECT_TRUE(GetController()->Process( ui::Accelerator(ui::VKEY_LWIN, ui::EF_NONE))); } + // DisableCapsLock + { + // Handled only on key release. + EXPECT_FALSE(GetController()->Process( + ui::Accelerator(ui::VKEY_LSHIFT, ui::EF_NONE))); + EXPECT_TRUE(GetController()->Process( + ReleaseAccelerator(ui::VKEY_SHIFT, ui::EF_NONE))); + EXPECT_FALSE(GetController()->Process( + ui::Accelerator(ui::VKEY_RSHIFT, ui::EF_NONE))); + EXPECT_TRUE(GetController()->Process( + ReleaseAccelerator(ui::VKEY_LSHIFT, ui::EF_NONE))); + EXPECT_FALSE(GetController()->Process( + ui::Accelerator(ui::VKEY_SHIFT, ui::EF_NONE))); + EXPECT_TRUE(GetController()->Process( + ReleaseAccelerator(ui::VKEY_RSHIFT, ui::EF_NONE))); + + // Do not handle when a shift pressed with other keys. + EXPECT_FALSE(GetController()->Process( + ReleaseAccelerator(ui::VKEY_A, ui::EF_SHIFT_DOWN))); + } // ToggleCapsLock { EXPECT_FALSE(GetController()->Process( diff --git a/ash/accelerators/accelerator_table.cc b/ash/accelerators/accelerator_table.cc index 6287b71..5a53ec5 100644 --- a/ash/accelerators/accelerator_table.cc +++ b/ash/accelerators/accelerator_table.cc @@ -19,6 +19,10 @@ const AcceleratorData kAcceleratorData[] = { { false, ui::VKEY_LSHIFT, ui::EF_ALT_DOWN, NEXT_IME }, { false, ui::VKEY_SHIFT, ui::EF_ALT_DOWN, NEXT_IME }, { false, ui::VKEY_RSHIFT, ui::EF_ALT_DOWN, NEXT_IME }, + // Single shift release turns off caps lock. + { false, ui::VKEY_LSHIFT, ui::EF_NONE, DISABLE_CAPS_LOCK }, + { false, ui::VKEY_SHIFT, ui::EF_NONE, DISABLE_CAPS_LOCK }, + { false, ui::VKEY_RSHIFT, ui::EF_NONE, DISABLE_CAPS_LOCK }, { true, ui::VKEY_SPACE, ui::EF_CONTROL_DOWN, PREVIOUS_IME }, // Shortcuts for Japanese IME. @@ -189,6 +193,7 @@ const AcceleratorAction kActionsAllowedAtLoginOrLockScreen[] = { #if defined(OS_CHROMEOS) CYCLE_DISPLAY_MODE, #endif // defined(OS_CHROMEOS) + DISABLE_CAPS_LOCK, KEYBOARD_BRIGHTNESS_DOWN, KEYBOARD_BRIGHTNESS_UP, NEXT_IME, diff --git a/ash/accelerators/accelerator_table.h b/ash/accelerators/accelerator_table.h index c5c5462..a599460 100644 --- a/ash/accelerators/accelerator_table.h +++ b/ash/accelerators/accelerator_table.h @@ -19,6 +19,7 @@ enum AcceleratorAction { CYCLE_BACKWARD_MRU, CYCLE_FORWARD_LINEAR, CYCLE_FORWARD_MRU, + DISABLE_CAPS_LOCK, DISPLAY_ADD_REMOVE, DISPLAY_CYCLE, DISPLAY_TOGGLE_SCALE, |