Extended key mapper to include modifiers as well

This commit is contained in:
michael starke
2017-01-18 18:30:10 +01:00
parent 334e92d1b4
commit c9b3637c24
7 changed files with 108 additions and 30 deletions

View File

@@ -32,11 +32,15 @@ static CGEventFlags _updateModifierMaskForCurrentDefaults(CGEventFlags modifiers
}
- (instancetype)initWithModifierMask:(CGEventFlags)modiferMask character:(NSString *)character {
CGKeyCode mappedKey = [MPKeyMapper keyCodeForCharacter:character];
CGEventFlags modifiers;
CGKeyCode mappedKey = [MPKeyMapper keyCodeForCharacter:character modifier:&modifiers];
if(mappedKey == kMPUnknownKeyCode) {
self = nil;
}
else {
if(modifiers && (modiferMask != modifiers)) {
NSLog(@"Supplied modifiers for character %@ do not match required modifiers", character);
}
self = [self initWithModifierMask:modiferMask keyCode:mappedKey];
}
return self;
@@ -60,9 +64,4 @@ static CGEventFlags _updateModifierMaskForCurrentDefaults(CGEventFlags modifiers
//return ([self _transformKeyCode] != kMPUnknownKeyCode);
}
- (CGKeyCode)_transformKeyCode {
NSString *key = [MPKeyMapper stringForKey:self.keyCode];
return [MPKeyMapper keyCodeForCharacter:key];
}
@end