From f8112c34865488729f7b2789d3895958e6f80388 Mon Sep 17 00:00:00 2001 From: ubkp <118854183+ubkp@users.noreply.github.com> Date: Wed, 6 Dec 2023 19:07:37 -0300 Subject: [PATCH] Fix IsMouseButtonUp() and add touch events for PLATFORM_DESKTOP_SDL --- src/platforms/rcore_desktop_sdl.c | 24 ++++++++++++++++++++++++ 1 file changed, 24 insertions(+) diff --git a/src/platforms/rcore_desktop_sdl.c b/src/platforms/rcore_desktop_sdl.c index e684465c3..891f5bd8a 100644 --- a/src/platforms/rcore_desktop_sdl.c +++ b/src/platforms/rcore_desktop_sdl.c @@ -1139,6 +1139,7 @@ void PollInputEvents(void) else if (btn == 1) btn = 2; CORE.Input.Mouse.currentButtonState[btn] = 1; + CORE.Input.Touch.currentTouchState[btn] = 1; touchAction = 1; gestureUpdate = true; @@ -1152,6 +1153,7 @@ void PollInputEvents(void) else if (btn == 1) btn = 2; CORE.Input.Mouse.currentButtonState[btn] = 0; + CORE.Input.Touch.currentTouchState[btn] = 0; touchAction = 0; gestureUpdate = true; @@ -1180,6 +1182,28 @@ void PollInputEvents(void) gestureUpdate = true; } break; + // Check touch events + // NOTE: These cases need to be reviewed on a real touch screen + case SDL_FINGERDOWN: { + CORE.Input.Touch.currentTouchState[event.tfinger.fingerId] = 1; + + touchAction = 1; + gestureUpdate = true; + } break; + case SDL_FINGERUP: { + CORE.Input.Touch.currentTouchState[event.tfinger.fingerId] = 0; + + touchAction = 0; + gestureUpdate = true; + } break; + case SDL_FINGERMOTION: { + CORE.Input.Touch.position[event.tfinger.fingerId].x = (float)event.motion.x; + CORE.Input.Touch.position[event.tfinger.fingerId].y = (float)event.motion.y; + + touchAction = 2; + gestureUpdate = true; + } break; + // Check gamepad events case SDL_JOYAXISMOTION: {