summaryrefslogtreecommitdiff
path: root/chromium/content/browser/cocoa/system_hotkey_map.mm
diff options
context:
space:
mode:
Diffstat (limited to 'chromium/content/browser/cocoa/system_hotkey_map.mm')
-rw-r--r--chromium/content/browser/cocoa/system_hotkey_map.mm29
1 files changed, 27 insertions, 2 deletions
diff --git a/chromium/content/browser/cocoa/system_hotkey_map.mm b/chromium/content/browser/cocoa/system_hotkey_map.mm
index da04fa8b844..6ee40574420 100644
--- a/chromium/content/browser/cocoa/system_hotkey_map.mm
+++ b/chromium/content/browser/cocoa/system_hotkey_map.mm
@@ -4,6 +4,10 @@
#import "content/browser/cocoa/system_hotkey_map.h"
+#import <Carbon/Carbon.h>
+
+#include "base/mac/scoped_nsobject.h"
+
#pragma mark - NSDictionary Helper Functions
namespace {
@@ -75,11 +79,32 @@ bool SystemHotkeyMap::ParseDictionary(NSDictionary* dictionary) {
if (!dictionary)
return false;
- NSDictionary* hotkey_dictionaries =
+ NSDictionary* user_hotkey_dictionaries =
DictionaryForKey(dictionary, @"AppleSymbolicHotKeys");
- if (!hotkey_dictionaries)
+ if (!user_hotkey_dictionaries)
return false;
+ // Start with a dictionary of default OS X hotkeys that are not necessarily
+ // listed in com.apple.symbolichotkeys.plist, but should still be handled as
+ // reserved.
+ // If the user has overridden or disabled any of these hotkeys,
+ // -NSMutableDictionary addEntriesFromDictionary:] will ensure that the new
+ // values are used.
+ // See https://crbug.com/145062#c8
+ base::scoped_nsobject<NSMutableDictionary> hotkey_dictionaries([@{
+ // Default Window switch key binding: Command + `
+ // Note: The first parameter @96 is not used by |SystemHotkeyMap|.
+ @"27" : @{
+ @"enabled" : @YES,
+ @"value" : @{
+ @"type" : @"standard",
+ @"parameters" :
+ @[ @96 /* unused */, @(kVK_ANSI_Grave), @(NSCommandKeyMask) ],
+ }
+ }
+ } mutableCopy]);
+ [hotkey_dictionaries addEntriesFromDictionary:user_hotkey_dictionaries];
+
for (NSString* hotkey_system_effect in [hotkey_dictionaries allKeys]) {
if (![hotkey_system_effect isKindOfClass:[NSString class]])
continue;