godotengine / godotengine/godot

Android multitouch gestures [InputEventMagnifyGesture, InputEventPanGesture]

Open
#105,331 0 comments 0 reactions 0 assignees View on GitHub
bug platform:android topic:input
Dominant language
C++
Stars
117k
Forks
26.8k
PR merge metrics
PR metrics pending

Description

### Tested versions

- Reproducible in v4.4.stable.mono.official [4c311cbee]

### System information

Godot v4.4.stable.mono - Windows 11 (build 22631) - Multi-window, 1 monitor - Vulkan (Mobile) - dedicated NVIDIA GeForce RTX 4080 SUPER (NVIDIA; 32.0.15.6094) - Intel(R) Core(TM) i7-14700K (28 threads)

### Issue description

**Observed behavior:**
When a multitouch gesture is interrupted (one touch removed), Godot stops reacting to another touch completely, as if the user is not touching the screen at all. It's also no longer possible to get a multitouch gesture again unless the user stops touching the screen.
**Excpected behavior:**
Godot should either start sending InputEventScreenDrag/InputEventMouseMotion or at least be able to continue sending multitouch gestures upon placing touch back.

### Steps to reproduce

1. Build a project to a device
2. Start multitouch gesture
3. Remove one touch from screen
4. Observe godot stops detecting the other touch

### Minimal reproduction project (MRP)

[GestureIssue.zip](https://github.com/user-attachments/files/19722256/GestureIssue.zip)

Contributor guide

Open the contributing guide

Research direction

Start by reproducing the issue with the linked GestureIssue.zip project on Android, following the four listed steps. Trace the Android handling of InputEventMagnifyGesture, InputEventPanGesture, InputEventScreenDrag, and InputEventMouseMotion after one touch is removed. Done means the remaining touch continues producing input or multitouch gestures can resume without requiring all touches to be released.

Written by the indexing model from the issue text.

Assessment

Tech stack
android
Domain
game-dev, mobile-dev
Issue type
Bug
Difficulty
4/5
Estimated time
3-5 days
Activity status
Stale
Clarity
Mostly clear
Newbie friendliness
45/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.