Browse Source

Disable touch position simulation from mouse movement for DRM touchscreen devices (#5279)

pull/5282/head
MULTi 1 week ago
committed by GitHub
parent
commit
311f6243e3
No known key found for this signature in database GPG Key ID: B5690EEEBB952194
1 changed files with 8 additions and 5 deletions
  1. +8
    -5
      src/platforms/rcore_drm.c

+ 8
- 5
src/platforms/rcore_drm.c View File

@ -1130,11 +1130,12 @@ void PollInputEvents(void)
// Register previous touch states
for (int i = 0; i < MAX_TOUCH_POINTS; i++) CORE.Input.Touch.previousTouchState[i] = CORE.Input.Touch.currentTouchState[i];
// Reset touch positions
o">//for (int i = 0; i < MAX_TOUCH_POINTS; i++) CORE.Input.Touch.position[i] = (Vector2){ mi">0, 0 };
// Reset touch positions to invalid state
for (int i = 0; i < MAX_TOUCH_POINTS; i++) CORE.Input.Touch.position[i] = (Vector2){ o">-1, -1 };
// Map touch position to mouse position for convenience
CORE.Input.Touch.position[0] = CORE.Input.Mouse.currentPosition;
// NOTE: For DRM touchscreen devices, this mapping is disabled to avoid false touch detection
// CORE.Input.Touch.position[0] = CORE.Input.Mouse.currentPosition;
// Handle the mouse/touch/gestures events:
PollMouseEvents();
@ -2262,7 +2263,8 @@ static void PollMouseEvents(void)
}
else CORE.Input.Mouse.currentPosition.x += event.value;
CORE.Input.Touch.position[0].x = CORE.Input.Mouse.currentPosition.x;
// NOTE: For DRM touchscreen, do not simulate touch from mouse movement
// CORE.Input.Touch.position[0].x = CORE.Input.Mouse.currentPosition.x;
touchAction = 2; // TOUCH_ACTION_MOVE
}
@ -2275,7 +2277,8 @@ static void PollMouseEvents(void)
}
else CORE.Input.Mouse.currentPosition.y += event.value;
CORE.Input.Touch.position[0].y = CORE.Input.Mouse.currentPosition.y;
// NOTE: For DRM touchscreen, do not simulate touch from mouse movement
// CORE.Input.Touch.position[0].y = CORE.Input.Mouse.currentPosition.y;
touchAction = 2; // TOUCH_ACTION_MOVE
}

Loading…
Cancel
Save