From ba95c54f9983f143623ae8b3d022556b3723cc59 Mon Sep 17 00:00:00 2001 From: Sam Lantinga Date: Sat, 18 Jan 2025 09:38:15 -0800 Subject: [PATCH] macOS: get the correct display name on macOS 10.15+ --- src/video/cocoa/SDL_cocoamodes.m | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/src/video/cocoa/SDL_cocoamodes.m b/src/video/cocoa/SDL_cocoamodes.m index 4fd245a21f..7de75729c1 100644 --- a/src/video/cocoa/SDL_cocoamodes.m +++ b/src/video/cocoa/SDL_cocoamodes.m @@ -283,6 +283,16 @@ static bool GetDisplayMode(CGDisplayModeRef vidmode, bool vidmodeCurrent, CFArra static char *Cocoa_GetDisplayName(CGDirectDisplayID displayID) { + if (@available(macOS 10.15, *)) { + NSScreen *screen = GetNSScreenForDisplayID(displayID); + if (screen) { + const char *name = [screen.localizedName UTF8String]; + if (name) { + return SDL_strdup(name); + } + } + } + // This API is deprecated in 10.9 with no good replacement (as of 10.15). io_service_t servicePort = CGDisplayIOServicePort(displayID); CFDictionaryRef deviceInfo = IODisplayCreateInfoDictionary(servicePort, kIODisplayOnlyPreferredName);