From 25ced236daf5fddc8fa47b6b0341f226290739db Mon Sep 17 00:00:00 2001 From: AverageConsumer <35539970+AverageConsumer@users.noreply.github.com> Date: Sat, 5 Sep 2026 23:13:16 +0200 Subject: [PATCH] Forward touch movement on the Android secondary screen --- .../java/org/love2d/android/GameActivity.java | 18 +++++++++++++++++- 1 file changed, 17 insertions(+), 1 deletion(-) diff --git a/mobile/android/love/src/main/java/org/love2d/android/GameActivity.java b/mobile/android/love/src/main/java/org/love2d/android/GameActivity.java index 306de1f8..ea76c5be 100644 --- a/mobile/android/love/src/main/java/org/love2d/android/GameActivity.java +++ b/mobile/android/love/src/main/java/org/love2d/android/GameActivity.java @@ -2942,7 +2942,23 @@ public class GameActivity extends SDLActivity { activePointer = event.getPointerId(0); enqueueTouch("down," + logicalX(event.getX()) + "," + logicalY(event.getY())); - } else if (action == android.view.MotionEvent.ACTION_UP + } else if (action == android.view.MotionEvent.ACTION_MOVE + && activePointer >= 0) { + int index = event.findPointerIndex(activePointer); + if (index >= 0 && fw > 0) { + for (int sample = 0; sample < event.getHistorySize(); sample++) { + enqueueTouch("move," + logicalX(event.getHistoricalX(index, sample)) + + "," + logicalY(event.getHistoricalY(index, sample))); + } + enqueueTouch("move," + logicalX(event.getX(index)) + "," + + logicalY(event.getY(index))); + } else { + activePointer = -1; + enqueueTouch("cancel,0,0"); + } + } else if ((action == android.view.MotionEvent.ACTION_UP + || (action == android.view.MotionEvent.ACTION_POINTER_UP + && event.getPointerId(event.getActionIndex()) == activePointer)) && activePointer >= 0) { int index = event.findPointerIndex(activePointer); if (index >= 0 && fw > 0) {