diff options
| author | ubkp <[email protected]> | 2023-12-07 15:53:02 -0300 |
|---|---|---|
| committer | GitHub <[email protected]> | 2023-12-07 19:53:02 +0100 |
| commit | ab9bddb3bd3b60c07f5c6583569d224ed9d31e72 (patch) | |
| tree | e8ea8475b75daed30aec9cf6c898ec398e66b305 | |
| parent | 8b33d1eeb952808d11bf017d34ef3fa1d5d7484e (diff) | |
| download | raylib-ab9bddb3bd3b60c07f5c6583569d224ed9d31e72.tar.gz raylib-ab9bddb3bd3b60c07f5c6583569d224ed9d31e72.zip | |
[rcore] Fix `IsMouseButtonUp()` and add touch events for `PLATFORM_DESKTOP_SDL` (#3610)
* Fix IsMouseButtonUp() and add touch events for PLATFORM_DESKTOP_SDL
* Fix coding convention
| -rw-r--r-- | src/platforms/rcore_desktop_sdl.c | 27 |
1 files changed, 27 insertions, 0 deletions
diff --git a/src/platforms/rcore_desktop_sdl.c b/src/platforms/rcore_desktop_sdl.c index 127c302b..8cb0c1be 100644 --- a/src/platforms/rcore_desktop_sdl.c +++ b/src/platforms/rcore_desktop_sdl.c @@ -1138,6 +1138,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; @@ -1151,6 +1152,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; @@ -1179,6 +1181,31 @@ 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: { |
