summaryrefslogtreecommitdiffstats
path: root/ash
diff options
context:
space:
mode:
authoryusukes@google.com <yusukes@google.com@0039d316-1c4b-4281-b951-d872f2087c98>2012-07-13 04:46:22 +0000
committeryusukes@google.com <yusukes@google.com@0039d316-1c4b-4281-b951-d872f2087c98>2012-07-13 04:46:22 +0000
commit725d11a434b0bb70c578fbeafa3baeecec91d0e9 (patch)
tree10ed37e95b8802ca8f567c27f249a11993819eb5 /ash
parentfd237d31cca7c3a3d4c2db9721eb59cd964cd9ff (diff)
downloadchromium_src-725d11a434b0bb70c578fbeafa3baeecec91d0e9.zip
chromium_src-725d11a434b0bb70c578fbeafa3baeecec91d0e9.tar.gz
chromium_src-725d11a434b0bb70c578fbeafa3baeecec91d0e9.tar.bz2
Always handle Chrome OS top-row keys (F5-10) in Ash.
BUG=136861 TEST=aura_shell_unittests Committed: http://src.chromium.org/viewvc/chrome?view=rev&revision=146468 Review URL: https://chromiumcodereview.appspot.com/10702181 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@146523 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'ash')
-rw-r--r--ash/accelerators/accelerator_controller.cc1
-rw-r--r--ash/accelerators/accelerator_controller_unittest.cc27
-rw-r--r--ash/accelerators/accelerator_table.cc34
-rw-r--r--ash/accelerators/accelerator_table.h3
4 files changed, 54 insertions, 11 deletions
diff --git a/ash/accelerators/accelerator_controller.cc b/ash/accelerators/accelerator_controller.cc
index 85c70e3..43a68b7 100644
--- a/ash/accelerators/accelerator_controller.cc
+++ b/ash/accelerators/accelerator_controller.cc
@@ -411,6 +411,7 @@ bool AcceleratorController::PerformAction(int action,
case RESTORE_TAB:
return HandleRestoreTab();
case TAKE_SCREENSHOT:
+ case TAKE_SCREENSHOT_BY_PRTSCN_KEY:
if (screenshot_delegate_.get()) {
Shell::RootWindowList root_windows = Shell::GetAllRootWindows();
for (size_t i = 0; i < root_windows.size(); ++i)
diff --git a/ash/accelerators/accelerator_controller_unittest.cc b/ash/accelerators/accelerator_controller_unittest.cc
index 45d81ad..fde7259 100644
--- a/ash/accelerators/accelerator_controller_unittest.cc
+++ b/ash/accelerators/accelerator_controller_unittest.cc
@@ -957,15 +957,32 @@ TEST_F(AcceleratorControllerTest, ImeGlobalAccelerators) {
}
TEST_F(AcceleratorControllerTest, ReservedAccelerators) {
- // (Shift+)Alt+Tab is reserved, while (Shift+)F5 is not.
- EXPECT_FALSE(GetController()->IsReservedAccelerator(
- ui::Accelerator(ui::VKEY_F5, ui::EF_NONE)));
+ // (Shift+)Alt+Tab and Chrome OS top-row keys are reserved.
EXPECT_TRUE(GetController()->IsReservedAccelerator(
ui::Accelerator(ui::VKEY_TAB, ui::EF_ALT_DOWN)));
- EXPECT_FALSE(GetController()->IsReservedAccelerator(
- ui::Accelerator(ui::VKEY_F5, ui::EF_SHIFT_DOWN)));
EXPECT_TRUE(GetController()->IsReservedAccelerator(
ui::Accelerator(ui::VKEY_TAB, ui::EF_SHIFT_DOWN | ui::EF_ALT_DOWN)));
+#if defined(OS_CHROMEOS)
+ EXPECT_TRUE(GetController()->IsReservedAccelerator(
+ ui::Accelerator(ui::VKEY_F5, ui::EF_NONE)));
+ EXPECT_TRUE(GetController()->IsReservedAccelerator(
+ ui::Accelerator(ui::VKEY_F6, ui::EF_NONE)));
+ EXPECT_TRUE(GetController()->IsReservedAccelerator(
+ ui::Accelerator(ui::VKEY_F7, ui::EF_NONE)));
+ EXPECT_TRUE(GetController()->IsReservedAccelerator(
+ ui::Accelerator(ui::VKEY_F8, ui::EF_NONE)));
+ EXPECT_TRUE(GetController()->IsReservedAccelerator(
+ ui::Accelerator(ui::VKEY_F9, ui::EF_NONE)));
+ EXPECT_TRUE(GetController()->IsReservedAccelerator(
+ ui::Accelerator(ui::VKEY_F10, ui::EF_NONE)));
+#endif
+ // Others are not reserved.
+ EXPECT_FALSE(GetController()->IsReservedAccelerator(
+ ui::Accelerator(ui::VKEY_PRINT, ui::EF_NONE)));
+ EXPECT_FALSE(GetController()->IsReservedAccelerator(
+ ui::Accelerator(ui::VKEY_TAB, ui::EF_NONE)));
+ EXPECT_FALSE(GetController()->IsReservedAccelerator(
+ ui::Accelerator(ui::VKEY_A, ui::EF_NONE)));
}
} // namespace test
diff --git a/ash/accelerators/accelerator_table.cc b/ash/accelerators/accelerator_table.cc
index 75ac163..f01b1be 100644
--- a/ash/accelerators/accelerator_table.cc
+++ b/ash/accelerators/accelerator_table.cc
@@ -74,7 +74,7 @@ const AcceleratorData kAcceleratorData[] = {
{ true, ui::VKEY_F5, ui::EF_CONTROL_DOWN, TAKE_SCREENSHOT },
{ true, ui::VKEY_F5, ui::EF_SHIFT_DOWN | ui::EF_CONTROL_DOWN,
TAKE_PARTIAL_SCREENSHOT },
- { true, ui::VKEY_PRINT, ui::EF_NONE, TAKE_SCREENSHOT },
+ { true, ui::VKEY_PRINT, ui::EF_NONE, TAKE_SCREENSHOT_BY_PRTSCN_KEY },
// On Chrome OS, Search key is mapped to LWIN.
{ true, ui::VKEY_LWIN, ui::EF_NONE, TOGGLE_APP_LIST },
{ true, ui::VKEY_MEDIA_LAUNCH_APP2, ui::EF_NONE, TOGGLE_APP_LIST },
@@ -142,15 +142,39 @@ const AcceleratorData kAcceleratorData[] = {
PRINT_WINDOW_HIERARCHY },
#endif
- // TODO(yusukes): Handle VKEY_MEDIA_STOP, VKEY_MEDIA_PLAY_PAUSE,
- // VKEY_MEDIA_LAUNCH_MAIL, and VKEY_MEDIA_LAUNCH_APP2 (aka Calculator button).
+ // TODO(yusukes): Handle VKEY_MEDIA_STOP, VKEY_MEDIA_PLAY_PAUSE, and
+ // VKEY_MEDIA_LAUNCH_MAIL.
};
const size_t kAcceleratorDataLength = arraysize(kAcceleratorData);
const AcceleratorAction kReservedActions[] = {
- CYCLE_BACKWARD_MRU,
- CYCLE_FORWARD_MRU,
+ // Window cycling accelerators.
+ CYCLE_BACKWARD_MRU, // Shift+Alt+Tab
+ CYCLE_FORWARD_MRU, // Alt+Tab
+
+#if defined(OS_CHROMEOS)
+ // Chrome OS top-row keys.
+ FOCUS_PREVIOUS_PANE, // Control+F1
+ FOCUS_NEXT_PANE, // Control+F2
+ CYCLE_DISPLAY_MODE, // Control+F4
+ DISPLAY_ADD_REMOVE, // Shift+F4
+ DISPLAY_CYCLE, // Shift+Control+F4
+ CYCLE_FORWARD_LINEAR, // F5
+ CYCLE_BACKWARD_LINEAR, // Shift+F5
+ TAKE_SCREENSHOT, // Control+F5
+ TAKE_PARTIAL_SCREENSHOT, // Shift+Control+F5
+ BRIGHTNESS_DOWN, // F6
+ KEYBOARD_BRIGHTNESS_DOWN, // Alt+F6
+ MAGNIFY_SCREEN_ZOOM_OUT, // Control+F6
+ BRIGHTNESS_UP, // F7
+ KEYBOARD_BRIGHTNESS_UP, // Alt+F7
+ MAGNIFY_SCREEN_ZOOM_IN, // Control+F7
+ VOLUME_MUTE, // F8
+ VOLUME_DOWN, // F9
+ VOLUME_UP // F10
+ // TODO(yusukes): Handle F1, F2, F3, and F4 without modifiers in BrowserView.
+#endif
};
const size_t kReservedActionsLength = arraysize(kReservedActions);
diff --git a/ash/accelerators/accelerator_table.h b/ash/accelerators/accelerator_table.h
index cf99660..ddc6c7c 100644
--- a/ash/accelerators/accelerator_table.h
+++ b/ash/accelerators/accelerator_table.h
@@ -49,7 +49,8 @@ enum AcceleratorAction {
SHOW_TASK_MANAGER,
SWITCH_IME, // Switch to another IME depending on the accelerator.
TAKE_PARTIAL_SCREENSHOT,
- TAKE_SCREENSHOT,
+ TAKE_SCREENSHOT, // Control+F5
+ TAKE_SCREENSHOT_BY_PRTSCN_KEY, // PrtScn
TOGGLE_APP_LIST,
TOGGLE_CAPS_LOCK,
TOGGLE_SPOKEN_FEEDBACK,