mirror of
https://github.com/MacPass/MacPass.git
synced 2025-12-22 16:29:23 +00:00
Added Accessibilty verification for macOS 10.14 to allow for better user experince
This commit is contained in:
@@ -55,6 +55,8 @@ NSString *const kMPProcessIdentifierKey = @"kMPProcessIdentifierKey";
|
||||
|
||||
@implementation MPAutotypeDaemon
|
||||
|
||||
@dynamic autotypeSupported;
|
||||
|
||||
#pragma mark -
|
||||
#pragma mark Lifecylce
|
||||
|
||||
@@ -93,6 +95,7 @@ static MPAutotypeDaemon *_sharedInstance;
|
||||
name:NSWorkspaceDidDeactivateApplicationNotification
|
||||
object:nil];
|
||||
}
|
||||
[self checkForAccessibiltyPermissions];
|
||||
return self;
|
||||
}
|
||||
|
||||
@@ -105,6 +108,14 @@ static MPAutotypeDaemon *_sharedInstance;
|
||||
|
||||
#pragma mark -
|
||||
#pragma mark Properties
|
||||
- (BOOL)autotypeSupported {
|
||||
if(@available(macOS 10.14, *)) {
|
||||
return AXIsProcessTrusted();
|
||||
}
|
||||
/* macOS 10.13 and lower allows us to send key events regardless of accessibilty trust */
|
||||
return YES;
|
||||
}
|
||||
|
||||
- (void)setEnabled:(BOOL)enabled {
|
||||
if(_enabled != enabled) {
|
||||
_enabled = enabled;
|
||||
@@ -122,6 +133,16 @@ static MPAutotypeDaemon *_sharedInstance;
|
||||
}
|
||||
}
|
||||
|
||||
- (void)checkForAccessibiltyPermissions {
|
||||
if(@available(macOS 10.14, *)) {
|
||||
CFStringRef keys[] = { kAXTrustedCheckOptionPrompt };
|
||||
CFBooleanRef values[] = { kCFBooleanTrue };
|
||||
CFDictionaryRef dictRef = CFDictionaryCreate(kCFAllocatorDefault, (const void **)keys, (const void **)values, 1, &kCFTypeDictionaryKeyCallBacks, &kCFTypeDictionaryValueCallBacks);
|
||||
AXIsProcessTrustedWithOptions(dictRef);
|
||||
CFRelease(dictRef);
|
||||
}
|
||||
}
|
||||
|
||||
#pragma mark -
|
||||
#pragma mark Autotype Invocation
|
||||
- (void)performAutotypeForEntry:(KPKEntry *)entry {
|
||||
|
||||
Reference in New Issue
Block a user