From 77da47613e3bc8911b5f67fa41e2d124d280f7d5 Mon Sep 17 00:00:00 2001 From: Eric Warmenhoven Date: Thu, 23 May 2024 21:30:45 -0400 Subject: [PATCH] macos: default Accessibility on if VoiceOver is on --- configuration.c | 4 ++-- ui/drivers/cocoa/apple_platform.h | 3 --- ui/drivers/cocoa/cocoa_common.m | 8 ++++++++ 3 files changed, 10 insertions(+), 5 deletions(-) diff --git a/configuration.c b/configuration.c index 3ebfd1340d..5afa238e5e 100644 --- a/configuration.c +++ b/configuration.c @@ -70,7 +70,7 @@ #include "switch_performance_profiles.h" #endif -#if IOS +#if __APPLE__ #include "ui/drivers/cocoa/apple_platform.h" #endif @@ -2880,7 +2880,7 @@ void config_set_defaults(void *data) load_timezone(settings->arrays.timezone); #endif -#if IOS +#if __APPLE__ configuration_set_bool(settings, settings->bools.accessibility_enable, RAIsVoiceOverRunning()); #endif diff --git a/ui/drivers/cocoa/apple_platform.h b/ui/drivers/cocoa/apple_platform.h index 72316c79e3..d50323971c 100644 --- a/ui/drivers/cocoa/apple_platform.h +++ b/ui/drivers/cocoa/apple_platform.h @@ -1,10 +1,7 @@ #ifndef COCOA_APPLE_PLATFORM_H #define COCOA_APPLE_PLATFORM_H -#if TARGET_OS_IPHONE -/* this comes from UIKit but you cannot #include UIKit from C */ extern bool RAIsVoiceOverRunning(void); -#endif #if TARGET_OS_TV #include "config_file.h" diff --git a/ui/drivers/cocoa/cocoa_common.m b/ui/drivers/cocoa/cocoa_common.m index f82d995dfb..3422ef7dde 100644 --- a/ui/drivers/cocoa/cocoa_common.m +++ b/ui/drivers/cocoa/cocoa_common.m @@ -62,6 +62,14 @@ extern bool RAIsVoiceOverRunning(void) { return UIAccessibilityIsVoiceOverRunning(); } +#elif OSX +#import +extern bool RAIsVoiceOverRunning(void) +{ + if (@available(macOS 10.13, *)) + return [[NSWorkspace sharedWorkspace] isVoiceOverEnabled]; + return false; +} #endif #if defined(HAVE_COCOA_METAL) || defined(HAVE_COCOATOUCH)