From 71643d8cdace412ae6ad10c8fc96ce029fb07d38 Mon Sep 17 00:00:00 2001 From: Ray Date: Tue, 25 Aug 2026 20:18:08 +0200 Subject: [PATCH] REVIEWED: `GetWindowHandle()`, avoid on SDL2 with Linux #6085 It generates conflicts with raylib Font symbol --- src/platforms/rcore_desktop_sdl.c | 14 ++++++++++++-- 1 file changed, 12 insertions(+), 2 deletions(-) diff --git a/src/platforms/rcore_desktop_sdl.c b/src/platforms/rcore_desktop_sdl.c index 79bf96557..fc183eb29 100644 --- a/src/platforms/rcore_desktop_sdl.c +++ b/src/platforms/rcore_desktop_sdl.c @@ -56,7 +56,12 @@ #include "SDL3/SDL.h" #elif defined(USING_SDL2_PROJECT) #include "SDL2/SDL.h" - #include "SDL2/SDL_syswm.h" // Required to get window handlers + #if !defined(__linux__) + // WARNING: On Linux this header includes Xlib.h that defines Font and + // conflicts with raylib Font, as it is only used on GetWindowHandle() and + // most users do not need that function, just commenting for that case + #include "SDL2/SDL_syswm.h" // Required to get window handlers + #endif #else #include "SDL.h" #endif @@ -955,13 +960,17 @@ void *GetWindowHandle(void) #elif defined(__APPLE__) handle = (void *)SDL_GetPointerProperty(props, SDL_PROP_WINDOW_COCOA_WINDOW_POINTER, NULL); // Type: NSWindow* #endif -#elif defined(USING_SDL2_PROJECT) +#elif defined(USING_SDL2_PROJECT) && !defined(__linux__) + // WARNING: On linux the inclusion of SDL_syswm.h also includes Xlib.h and + // generates a symbol conflict with raylib due to Font, as this function is not + // required by most users, just avoiding that use case SDL_SysWMinfo wmInfo = { 0 }; SDL_VERSION(&wmInfo.version); if (SDL_GetWindowWMInfo(platform.window, &wmInfo)) { #if defined(_WIN32) handle = (void *)wmInfo.info.win.window; // Type: HWND + /* #elif defined(__linux__) if (wmInfo.subsystem == SDL_SYSWM_X11) { @@ -975,6 +984,7 @@ void *GetWindowHandle(void) // NOTE: Alternative: wmInfo.info.wl.display handle = (void *)wmInfo.info.wl.surface; // Type: struct wl_surface* } + */ #elif defined(__APPLE__) handle = (void *)wmInfo.info.cocoa.window; // Type: NSWindow* #endif