Fix touch holding detection after #5244 changes

This commit is contained in:
SonicMastr 2022-02-01 22:33:13 -06:00 committed by Sam Lantinga
parent df0d696a62
commit ecd922b5cf
1 changed files with 21 additions and 8 deletions

View File

@ -108,17 +108,30 @@ VITA_PollTouch(void)
float x = 0;
float y = 0;
float force = (touch[port].report[i].force - force_info[port].min) / force_info[port].range;
int finger_down = 0;
if (touch_old[port].reportNum > 0) {
for (int j = 0; j < touch_old[port].reportNum; j++) {
if (touch[port].report[i].id == touch_old[port].report[j].id ) {
finger_down = 1;
}
}
}
VITA_ConvertTouchXYToSDLXY(&x, &y, touch[port].report[i].x, touch[port].report[i].y, port);
finger_id = (SDL_FingerID) touch[port].report[i].id;
// Send an initial touch
SDL_SendTouch((SDL_TouchID)port,
finger_id,
Vita_Window,
SDL_TRUE,
x,
y,
force);
// Skip if finger was already previously down
if(!finger_down) {
// Send an initial touch
SDL_SendTouch((SDL_TouchID)port,
finger_id,
Vita_Window,
SDL_TRUE,
x,
y,
force);
}
// Always send the motion
SDL_SendTouchMotion((SDL_TouchID)port,