summaryrefslogtreecommitdiffstats
path: root/chrome/browser/global_keyboard_shortcuts_mac.h
diff options
context:
space:
mode:
authorthakis@chromium.org <thakis@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2009-12-18 08:56:18 +0000
committerthakis@chromium.org <thakis@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2009-12-18 08:56:18 +0000
commit1ade7b6573cd86b9969740d7cc0376a6be23f385 (patch)
tree803722693e07073c11e30b7e31a56bd6c6a0d820 /chrome/browser/global_keyboard_shortcuts_mac.h
parent82bf749a2af4de1a5e1dcafd3f211993582bf24b (diff)
downloadchromium_src-1ade7b6573cd86b9969740d7cc0376a6be23f385.zip
chromium_src-1ade7b6573cd86b9969740d7cc0376a6be23f385.tar.gz
chromium_src-1ade7b6573cd86b9969740d7cc0376a6be23f385.tar.bz2
Add a keyboard shortcut on Escape that emits the IDC_STOP command.
BUG=20916 TEST=Load something big (http://cnn.com/) and hit escape. Page load will stop. Review URL: http://codereview.chromium.org/491023 Patch from Jochen Eisinger. git-svn-id: svn://svn.chromium.org/chrome/trunk/src@34942 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'chrome/browser/global_keyboard_shortcuts_mac.h')
-rw-r--r--chrome/browser/global_keyboard_shortcuts_mac.h20
1 files changed, 16 insertions, 4 deletions
diff --git a/chrome/browser/global_keyboard_shortcuts_mac.h b/chrome/browser/global_keyboard_shortcuts_mac.h
index 13a4587..d72c8aa 100644
--- a/chrome/browser/global_keyboard_shortcuts_mac.h
+++ b/chrome/browser/global_keyboard_shortcuts_mac.h
@@ -20,10 +20,13 @@ struct KeyboardShortcutData {
// returns: Command number (as passed to Browser::ExecuteCommand) or -1 if there
// was no match.
//
-// |performKeyEquivalent:| bubbles events up from the window to the views.
-// If we let it bubble up to the Omnibox, then the Omnibox handles
-// cmd-left/right just fine, but it swallows cmd-1 and doesn't give us a chance
-// to intercept this. Hence, we need two types of keyboard shortcuts.
+// |performKeyEquivalent:| bubbles events up from the window to the views. If
+// we let it bubble up to the Omnibox, then the Omnibox handles cmd-left/right
+// just fine, but it swallows cmd-1 and doesn't give us a chance to intercept
+// this. Hence, we need three types of keyboard shortcuts: shortcuts that are
+// intercepted before the Omnibox handles events, shortcuts that are
+// intercepted after the Omnibox had a chance but did not handle them, and
+// shortcuts that are only handled when tab contents is focused.
//
// This means cmd-left doesn't work if you hit cmd-l tab, which focusses
// something that's neither omnibox nor tab contents. This behavior is
@@ -38,6 +41,13 @@ int CommandForWindowKeyboardShortcut(
bool command_key, bool shift_key, bool cntrl_key, bool opt_key,
int vkey_code);
+// This returns shortcuts that should work no matter what component of the
+// browser is focused. They are executed by the window, after any view has the
+// opportunity to override the shortcut
+int CommandForDelayedWindowKeyboardShortcut(
+ bool command_key, bool shift_key, bool cntrl_key, bool opt_key,
+ int vkey_code);
+
// This returns shortcuts that should work only if the tab contents have focus
// (e.g. cmd-left, which shouldn't do history navigation if e.g. the omnibox has
// focus).
@@ -48,6 +58,8 @@ int CommandForBrowserKeyboardShortcut(
// For testing purposes.
const KeyboardShortcutData* GetWindowKeyboardShortcutTable(size_t* num_entries);
const KeyboardShortcutData*
+ GetDelayedWindowKeyboardShortcutTable(size_t* num_entries);
+const KeyboardShortcutData*
GetBrowserKeyboardShortcutTable(size_t* num_entries);
#endif // #ifndef CHROME_BROWSER_GLOBAL_KEYBOARD_SHORTCUTS_MAC_H_