From 3d49e9790be4c6b181880652bc6fd5b61a016f5a Mon Sep 17 00:00:00 2001 From: kanjitalk755 Date: Sun, 26 Nov 2023 09:48:26 +0900 Subject: [PATCH] Update for SDL3 --- BasiliskII/src/MacOSX/utils_macosx.mm | 13 +++++-------- BasiliskII/src/SDL/video_sdl3.cpp | 3 +-- SheepShaver/src/Unix/main_unix.cpp | 10 +++++++--- 3 files changed, 13 insertions(+), 13 deletions(-) diff --git a/BasiliskII/src/MacOSX/utils_macosx.mm b/BasiliskII/src/MacOSX/utils_macosx.mm index cdb952fc..af930e86 100644 --- a/BasiliskII/src/MacOSX/utils_macosx.mm +++ b/BasiliskII/src/MacOSX/utils_macosx.mm @@ -61,19 +61,16 @@ bool is_fullscreen_osx(SDL_Window * window) return false; } - SDL_SysWMinfo wmInfo; #if SDL_VERSION_ATLEAST(3, 0, 0) - if (!SDL_GetWindowWMInfo(window, &wmInfo, SDL_SYSWM_CURRENT_VERSION)) { - return false; - } + SDL_PropertiesID props = SDL_GetWindowProperties(window); + NSWindow *nswindow = (NSWindow *)SDL_GetProperty(props, "SDL.window.cocoa.window", NULL); #else + SDL_SysWMinfo wmInfo; SDL_VERSION(&wmInfo.version); - if (!SDL_GetWindowWMInfo(window, &wmInfo)) { - return false; - } + NSWindow *nswindow = SDL_GetWindowWMInfo(window, &wmInfo) ? wmInfo.info.cocoa.window : nil; #endif - const NSWindowStyleMask styleMask = [wmInfo.info.cocoa.window styleMask]; + const NSWindowStyleMask styleMask = [nswindow styleMask]; return (styleMask & NSWindowStyleMaskFullScreen) != 0; } #endif diff --git a/BasiliskII/src/SDL/video_sdl3.cpp b/BasiliskII/src/SDL/video_sdl3.cpp index 83ba0c3f..d95bfbac 100644 --- a/BasiliskII/src/SDL/video_sdl3.cpp +++ b/BasiliskII/src/SDL/video_sdl3.cpp @@ -2394,8 +2394,7 @@ static void handle_events(void) break; case SDL_EVENT_DROP_FILE: - CDROMDrop(event.drop.file); - SDL_free(event.drop.file); + CDROMDrop(event.drop.data); break; // Window "close" widget clicked diff --git a/SheepShaver/src/Unix/main_unix.cpp b/SheepShaver/src/Unix/main_unix.cpp index 0cb0736d..1c7199b3 100755 --- a/SheepShaver/src/Unix/main_unix.cpp +++ b/SheepShaver/src/Unix/main_unix.cpp @@ -719,17 +719,21 @@ static bool init_sdl() atexit(SDL_Quit); #if SDL_VERSION_ATLEAST(2, 0, 0) -#if !SDL_VERSION_ATLEAST(3, 0, 0) -#define SDL_EVENT_DROP_FILE SDL_DROPFILE -#endif const int SDL_EVENT_TIMEOUT = 100; for (int i = 0; i < SDL_EVENT_TIMEOUT; i++) { SDL_Event event; SDL_PollEvent(&event); +#if SDL_VERSION_ATLEAST(3, 0, 0) if (event.type == SDL_EVENT_DROP_FILE) { + sdl_vmdir = event.drop.data; + break; + } +#else + if (event.type == SDL_DROPFILE) { sdl_vmdir = event.drop.file; break; } +#endif SDL_Delay(1); } #endif