aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorDmitry Obukhov2015-01-27 21:53:35 +0300
committerTomáš Znamenáček2015-01-28 14:57:17 +0100
commit0db346d02be95bd66af52c1b9cd88439084bf295 (patch)
tree304340d017c83b039a911678c13992f7d89b9c7f
parent097288236819dd5ded2e9479fc1bce9509e30047 (diff)
downloadMASShortcut-0db346d02be95bd66af52c1b9cd88439084bf295.tar.bz2
Better key equivalent handling on non-ASCII keyboard layouts.
See #60 for a discussion. In short, keyCodeStringForKeyEquivalent should be now correct even with non-ASCII keyboard layouts such as Russian.
-rw-r--r--CHANGES4
-rw-r--r--Framework/MASShortcut.m4
2 files changed, 6 insertions, 2 deletions
diff --git a/CHANGES b/CHANGES
index 2031116..5231f01 100644
--- a/CHANGES
+++ b/CHANGES
@@ -1,3 +1,7 @@
+Not released yet:
+ - Better key equivalent handling for non-ASCII layouts.
+ [Dmitry Obukhov]
+
2.1.1 2015/1/16
- Another headerdoc fix for CocoaDocs, hopefully the last one.
diff --git a/Framework/MASShortcut.m b/Framework/MASShortcut.m
index e6fa63d..ef3385d 100644
--- a/Framework/MASShortcut.m
+++ b/Framework/MASShortcut.m
@@ -139,10 +139,10 @@ static NSString *const MASShortcutModifierFlags = @"ModifierFlags";
case 115: return NSStringFromMASKeyCode(kMASShortcutGlyphNorthwestArrow);
}
- // Everything else should be printable so look it up in the current keyboard
+ // Everything else should be printable so look it up in the current ASCII capable keyboard layout
OSStatus error = noErr;
NSString *keystroke = nil;
- TISInputSourceRef inputSource = TISCopyCurrentKeyboardLayoutInputSource();
+ TISInputSourceRef inputSource = TISCopyCurrentASCIICapableKeyboardLayoutInputSource();
if (inputSource) {
CFDataRef layoutDataRef = TISGetInputSourceProperty(inputSource, kTISPropertyUnicodeKeyLayoutData);
if (layoutDataRef) {