From 2248f31c05bfdcffd906468f26cca96c2892654e Mon Sep 17 00:00:00 2001
From: Sam Lantinga <[EMAIL REDACTED]>
Date: Tue, 4 Nov 2025 10:46:29 -0800
Subject: [PATCH] Handle SDL_EVENT_FINGER_CANCELED
---
SDL_gesture.h | 16 ++++++++++++++++
1 file changed, 16 insertions(+)
diff --git a/SDL_gesture.h b/SDL_gesture.h
index b6a347e..0a3ce50 100644
--- a/SDL_gesture.h
+++ b/SDL_gesture.h
@@ -758,6 +758,22 @@ static void GestureProcessEvent(const SDL_Event *event)
}
/* inTouch->gestureLast[j] = inTouch->gestureLast[inTouch->numDownFingers]; */
+ if (inTouch->numDownFingers > 0) {
+ inTouch->centroid.x = (inTouch->centroid.x * (inTouch->numDownFingers + 1) - x) / inTouch->numDownFingers;
+ inTouch->centroid.y = (inTouch->centroid.y * (inTouch->numDownFingers + 1) - y) / inTouch->numDownFingers;
+ }
+ } else if (event->type == SDL_EVENT_FINGER_CANCELED) {
+ inTouch->numDownFingers--;
+
+ if (inTouch->recording) {
+ inTouch->recording = false;
+ if (GestureRecordAll) {
+ for (i = 0; i < GestureNumTouches; i++) {
+ GestureTouches[i].recording = false;
+ }
+ }
+ }
+
if (inTouch->numDownFingers > 0) {
inTouch->centroid.x = (inTouch->centroid.x * (inTouch->numDownFingers + 1) - x) / inTouch->numDownFingers;
inTouch->centroid.y = (inTouch->centroid.y * (inTouch->numDownFingers + 1) - y) / inTouch->numDownFingers;