Index: chrome/browser/global_keyboard_shortcuts_mac.mm |
diff --git a/chrome/browser/global_keyboard_shortcuts_mac.mm b/chrome/browser/global_keyboard_shortcuts_mac.mm |
index 63982ef1c610bc68d584d2385b9cfbda54abcf7c..d74f9354bce9cee311e87e3224583ef8bd13ecb1 100644 |
--- a/chrome/browser/global_keyboard_shortcuts_mac.mm |
+++ b/chrome/browser/global_keyboard_shortcuts_mac.mm |
@@ -9,7 +9,8 @@ |
#include "base/basictypes.h" |
#include "chrome/app/chrome_dll_resource.h" |
-const KeyboardShortcutData* GetKeyboardShortCutTable(size_t* num_entries) { |
+const KeyboardShortcutData* GetWindowKeyboardShortcutTable |
+ (size_t* num_entries) { |
static const KeyboardShortcutData keyboard_shortcuts[] = { |
{true, true, false, kVK_ANSI_RightBracket, IDC_SELECT_NEXT_TAB}, |
{false, false, true, kVK_PageDown, IDC_SELECT_NEXT_TAB}, |
@@ -27,11 +28,6 @@ const KeyboardShortcutData* GetKeyboardShortCutTable(size_t* num_entries) { |
{true, false, false, kVK_ANSI_7, IDC_SELECT_TAB_6}, |
{true, false, false, kVK_ANSI_8, IDC_SELECT_TAB_7}, |
{true, false, false, kVK_ANSI_9, IDC_SELECT_LAST_TAB}, |
- // TODO(pinkerton): These can't live here yet, they need to be plumbed |
- // through the renderer first so it can override if in a text field. |
- // http://crbug.com/12557 |
- // {true, false, false, kVK_LeftArrow, IDC_BACK}, |
- // {true, false, false, kVK_RightArrow, IDC_FORWARD}, |
}; |
*num_entries = arraysize(keyboard_shortcuts); |
@@ -39,8 +35,21 @@ const KeyboardShortcutData* GetKeyboardShortCutTable(size_t* num_entries) { |
return keyboard_shortcuts; |
} |
-int CommandForKeyboardShortcut(bool command_key, bool shift_key, bool cntrl_key, |
- int vkey_code) { |
+const KeyboardShortcutData* GetBrowserKeyboardShortcutTable |
+ (size_t* num_entries) { |
+ static const KeyboardShortcutData keyboard_shortcuts[] = { |
+ {true, false, false, kVK_LeftArrow, IDC_BACK}, |
+ {true, false, false, kVK_RightArrow, IDC_FORWARD}, |
+ }; |
+ |
+ *num_entries = arraysize(keyboard_shortcuts); |
+ |
+ return keyboard_shortcuts; |
+} |
+ |
+static int CommandForKeyboardShortcut( |
+ const KeyboardShortcutData* (*get_keyboard_shortcut_table)(size_t*), |
+ bool command_key, bool shift_key, bool cntrl_key, int vkey_code) { |
// Scan through keycodes and see if it corresponds to one of the global |
// shortcuts on file. |
@@ -48,7 +57,7 @@ int CommandForKeyboardShortcut(bool command_key, bool shift_key, bool cntrl_key, |
// TODO(jeremy): Change this into a hash table once we get enough |
// entries in the array to make a difference. |
size_t num_shortcuts = 0; |
- const KeyboardShortcutData *it = GetKeyboardShortCutTable(&num_shortcuts); |
+ const KeyboardShortcutData *it = get_keyboard_shortcut_table(&num_shortcuts); |
for (size_t i = 0; i < num_shortcuts; ++i, ++it) { |
if (it->command_key == command_key && |
it->shift_key == shift_key && |
@@ -60,3 +69,17 @@ int CommandForKeyboardShortcut(bool command_key, bool shift_key, bool cntrl_key, |
return -1; |
} |
+ |
+int CommandForWindowKeyboardShortcut( |
+ bool command_key, bool shift_key, bool cntrl_key, int vkey_code) { |
+ return CommandForKeyboardShortcut(GetWindowKeyboardShortcutTable, |
+ command_key, shift_key, |
+ cntrl_key, vkey_code); |
+} |
+ |
+int CommandForBrowserKeyboardShortcut( |
+ bool command_key, bool shift_key, bool cntrl_key, int vkey_code) { |
+ return CommandForKeyboardShortcut(GetBrowserKeyboardShortcutTable, |
+ command_key, shift_key, |
+ cntrl_key, vkey_code); |
+} |