From af8743b5cc3cb5f19b50bb3554a4bbfcd9555514 Mon Sep 17 00:00:00 2001 From: michael starke Date: Sun, 14 Dec 2014 16:12:07 +0100 Subject: [PATCH] Respecting settings for command and control swap --- MacPass/MPAutotypeCommand.m | 2 +- MacPass/MPAutotypeKeyPress.m | 13 ++++++++++++- 2 files changed, 13 insertions(+), 2 deletions(-) diff --git a/MacPass/MPAutotypeCommand.m b/MacPass/MPAutotypeCommand.m index 8a449a2f..968e9639 100644 --- a/MacPass/MPAutotypeCommand.m +++ b/MacPass/MPAutotypeCommand.m @@ -93,7 +93,7 @@ static CGKeyCode kMPFunctionKeyCodes[] = { kVK_F1, kVK_F2, kVK_F3, kVK_F4, kVK_F dispatch_once(&onceToken, ^{ modifierCommands = @{ kKPKAutotypeAlt : @(kCGEventFlagMaskAlternate), - kKPKAutotypeControl : @(kCGEventFlagMaskCommand), + kKPKAutotypeControl : @(kCGEventFlagMaskControl), kKPKAutotypeShift : @(kCGEventFlagMaskShift) }; }); diff --git a/MacPass/MPAutotypeKeyPress.m b/MacPass/MPAutotypeKeyPress.m index cf8f5c1e..b2d22df7 100644 --- a/MacPass/MPAutotypeKeyPress.m +++ b/MacPass/MPAutotypeKeyPress.m @@ -7,14 +7,25 @@ // #import "MPAutotypeKeyPress.h" +#import "MPFlagsHelper.h" #import "MPKeyMapper.h" +#import "MPSettingsHelper.h" + @implementation MPAutotypeKeyPress +static CGEventFlags _updateModifierMaskForCurrentDefaults(CGEventFlags modifiers) { + BOOL sendCommand = [[NSUserDefaults standardUserDefaults] boolForKey:kMPSettingsKeySendCommandForControlKey]; + if(sendCommand && MPIsFlagSetInOptions(kCGEventFlagMaskControl, modifiers)) { + return (modifiers ^ kCGEventFlagMaskControl) | kCGEventFlagMaskCommand; + } + return modifiers; +} + - (instancetype)initWithModifierMask:(CGEventFlags)modiferMask keyCode:(CGKeyCode)code { self = [super init]; if(self) { - _modifierMask = modiferMask; + _modifierMask = _updateModifierMaskForCurrentDefaults(modiferMask); _keyCode = code; } return self;