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: {