Files
packages/extra/sdl3/sdl-libxinput.patch
SFG545 49bf7bbb5d Add configuration files and patches for R, SDL2, SDL3, Tk, and Vala
- Introduced `r.toml` for R package configuration, including build flags and dependencies.
- Added `sdl2-compat.toml` for SDL2 compatibility layer with SDL3, specifying build and runtime dependencies.
- Created a patch for SDL3 to handle cases when XInput2 is not available, ensuring compatibility.
- Added `sdl3.toml` for SDL3 configuration, including build flags and dependencies.
- Introduced `tk.toml` for Tk configuration, detailing build flags and runtime dependencies.
- Added a patch for Vala to ensure POSIX compliance in the test runner script, improving portability.
2026-03-24 00:04:10 -05:00

56 lines
2.0 KiB
Diff

From 8b6b251966b5ea14f9df87c834ffa9ea456b5600 Mon Sep 17 00:00:00 2001
From: Frank Praznik <frank.praznik@gmail.com>
Date: Tue, 17 Mar 2026 15:01:56 -0400
Subject: [PATCH] x11: Fix building when XInput2 is not available
---
src/video/x11/SDL_x11xinput2.c | 8 +++++++-
1 file changed, 7 insertions(+), 1 deletion(-)
diff --git a/src/video/x11/SDL_x11xinput2.c b/src/video/x11/SDL_x11xinput2.c
index c8b37cec98217..5cf75901f2c14 100644
--- a/src/video/x11/SDL_x11xinput2.c
+++ b/src/video/x11/SDL_x11xinput2.c
@@ -34,7 +34,6 @@
#ifdef SDL_VIDEO_DRIVER_X11_XINPUT2
static bool xinput2_initialized;
-#endif
#if defined(SDL_VIDEO_DRIVER_X11_XINPUT2_SUPPORTS_SCROLLINFO) || defined(SDL_VIDEO_DRIVER_X11_XINPUT2_SUPPORTS_MULTITOUCH)
static bool xinput2_scrolling_supported;
static bool xinput2_multitouch_supported;
@@ -137,6 +136,7 @@ static SDL_Window *xinput2_get_sdlwindow(SDL_VideoData *videodata, Window window
const SDL_WindowData *windowdata = X11_FindWindow(videodata, window);
return windowdata ? windowdata->window : NULL;
}
+#endif // SDL_VIDEO_DRIVER_X11_XINPUT2
#ifdef SDL_VIDEO_DRIVER_X11_XINPUT2_SUPPORTS_SCROLLINFO
static void xinput2_reset_scrollable_valuators(void)
@@ -751,12 +751,15 @@ void X11_HandleXinput2Event(SDL_VideoDevice *_this, XGenericEventCookie *cookie)
void X11_InitXinput2Multitouch(SDL_VideoDevice *_this)
{
+#ifdef SDL_VIDEO_DRIVER_X11_XINPUT2
xinput2_grabbed_touch_raised = false;
xinput2_active_touch_count = 0;
+#endif
}
bool X11_Xinput2HandlesMotionForWindow(SDL_WindowData *window_data)
{
+#ifdef SDL_VIDEO_DRIVER_X11_XINPUT2
/* Send the active flag once more after the touch count is zero, to suppress the
* emulated motion event when the last touch is raised.
*/
@@ -765,6 +768,9 @@ bool X11_Xinput2HandlesMotionForWindow(SDL_WindowData *window_data)
xinput2_grabbed_touch_raised = false;
return ret;
+#else
+ return false;
+#endif // SDL_VIDEO_DRIVER_X11_XINPUT2
}
void X11_Xinput2Select(SDL_VideoDevice *_this, SDL_Window *window)