From 7d25a443c45450287e0a3ec5c1eb0e417647070e Mon Sep 17 00:00:00 2001 From: "Ryan C. Gordon" Date: Tue, 28 Nov 2023 12:24:33 -0500 Subject: [PATCH] cocoa: Use `-[NSApplicationDelegate applicationSupportsSecureRestorableState]`. This prevents warnings at startup on macOS Sonoma (14.0). --- src/video/cocoa/SDL_cocoaevents.m | 17 +++++++++++++++++ 1 file changed, 17 insertions(+) diff --git a/src/video/cocoa/SDL_cocoaevents.m b/src/video/cocoa/SDL_cocoaevents.m index b1eabe88c..4440dd2ca 100644 --- a/src/video/cocoa/SDL_cocoaevents.m +++ b/src/video/cocoa/SDL_cocoaevents.m @@ -138,6 +138,7 @@ static void Cocoa_DispatchEvent(NSEvent *theEvent) - (id)init; - (void)localeDidChange:(NSNotification *)notification; +- (BOOL)applicationSupportsSecureRestorableState:(NSApplication *)app; @end @implementation SDLAppDelegate : NSObject @@ -310,6 +311,22 @@ static void Cocoa_DispatchEvent(NSEvent *theEvent) SDL_SendDropComplete(NULL); } +- (BOOL)applicationSupportsSecureRestorableState:(NSApplication *)app +{ + // This just tells Cocoa that we didn't do any custom save state magic for the app, + // so the system is safe to use NSSecureCoding internally, instead of using unencrypted + // save states for backwards compatibility. If we don't return YES here, we'll get a + // warning on the console at startup: + // + // ``` + // WARNING: Secure coding is not enabled for restorable state! Enable secure coding by implementing NSApplicationDelegate.applicationSupportsSecureRestorableState: and returning YES. + // ``` + // + // More-detailed explanation: + // https://stackoverflow.com/questions/77283578/sonoma-and-nsapplicationdelegate-applicationsupportssecurerestorablestate/77320845#77320845 + return YES; +} + @end static SDLAppDelegate *appDelegate = nil;