summaryrefslogtreecommitdiffhomepage
path: root/src/platforms
diff options
context:
space:
mode:
authorubkp <[email protected]>2023-12-07 15:53:02 -0300
committerGitHub <[email protected]>2023-12-07 19:53:02 +0100
commitab9bddb3bd3b60c07f5c6583569d224ed9d31e72 (patch)
treee8ea8475b75daed30aec9cf6c898ec398e66b305 /src/platforms
parent8b33d1eeb952808d11bf017d34ef3fa1d5d7484e (diff)
downloadraylib-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
Diffstat (limited to 'src/platforms')
-rw-r--r--src/platforms/rcore_desktop_sdl.c27
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:
{