diff options
| -rw-r--r-- | CMake/setup.cmake | 14 | ||||
| -rw-r--r-- | src/Fl_Native_File_Chooser_MAC.mm | 3 |
2 files changed, 15 insertions, 2 deletions
diff --git a/CMake/setup.cmake b/CMake/setup.cmake index 3b6708416..5419fb7f2 100644 --- a/CMake/setup.cmake +++ b/CMake/setup.cmake @@ -123,7 +123,19 @@ if(APPLE) endif(NOT(${CMAKE_SYSTEM_VERSION} VERSION_LESS 17.0.0)) else() set(FLTK_COCOA_FRAMEWORKS "-framework Cocoa") - if(NOT(${CMAKE_SYSTEM_VERSION} VERSION_LESS 20.0.0)) # a.k.a. macOS version ≥ 11.0 + set(UTI_CONDITION FALSE) + string(LENGTH "${CMAKE_OSX_DEPLOYMENT_TARGET}" TARGET_LEN) + string(LENGTH "${CMAKE_SYSTEM_VERSION}" SDK_LEN) + if(TARGET_LEN GREATER 0) + if( ${CMAKE_OSX_DEPLOYMENT_TARGET} VERSION_GREATER_EQUAL 11.0) + set(UTI_CONDITION TRUE) + endif() + elseif(SDK_LEN GREATER 0) + if( ${CMAKE_SYSTEM_VERSION} VERSION_GREATER_EQUAL 20.0 ) + set(UTI_CONDITION TRUE) + endif() + endif() + if(UTI_CONDITION) # a.k.a. macOS version ≥ 11.0 if (NOT (CMAKE_OSX_ARCHITECTURES STREQUAL "ppc" OR CMAKE_OSX_ARCHITECTURES STREQUAL "i386")) list(APPEND FLTK_COCOA_FRAMEWORKS "-framework UniformTypeIdentifiers") endif() diff --git a/src/Fl_Native_File_Chooser_MAC.mm b/src/Fl_Native_File_Chooser_MAC.mm index a10aa6c9d..2317de9c0 100644 --- a/src/Fl_Native_File_Chooser_MAC.mm +++ b/src/Fl_Native_File_Chooser_MAC.mm @@ -532,7 +532,8 @@ static char *prepareMacFilter(int count, const char *filter, char **patterns) { - (void)control_allowed_types:(const char *)p { NSString *ext = [NSString stringWithUTF8String:p]; -#if MAC_OS_X_VERSION_MAX_ALLOWED >= MAC_OS_VERSION_11_0 +#if MAC_OS_X_VERSION_MAX_ALLOWED >= MAC_OS_VERSION_11_0 && \ + MAC_OS_X_VERSION_MIN_REQUIRED >= MAC_OS_VERSION_11_0 if (fl_mac_os_version >= 110000) { UTType *type = [UTType typeWithFilenameExtension:ext]; // 11.0 + framework UniformTypeIdentifiers [dialog setAllowedContentTypes:[NSArray arrayWithObject:type]]; // 11.0 |
