Opened 7 years ago

Last modified 12 months ago

#6214 new defect

Android: improve mouse pointer movement in touchpad mode

Reported by: SF/crazyterabyte Owned by: fuzzie
Priority: normal Component: Port: Android
Keywords: Cc:
Game:

Description

I'm running ScummVM 1.5.0 on a 7" Android 4.1.2 tablet.
I noticed the mouser pointer speed and movement is odd: if I smoothly move my finger, very slowly, this is what happens:
- For a short finger movement, nothing happens.
- I keep moving the finger and then, when the distance seems to go over some threshold, the pointer finally moves, but jumps a few screen pixels at a time.
- Then it stays still for another couple of millimeters (or so), then it moves by jumping a few pixels.

This behavior is odd, unpredictable and frustrating. I can't move the pointer precisely, making it extremely hard to move it to the desired target. I've had trouble even while using the main launcher GUI, having misclicks due to poor pointer movement.

Suggestions:
- Never make the cursor jump X pixels if the finger has moved K*X units. Instead, make it move 1 pixel for each K units of finger movement.
- Want to avoid accidental movements while tap-to-clicking or tap-to-dragging? Add a deadzone threshold for the finger. The cursor would not move unless the finger has moved more than some threshold. After this moment, the cursor should move smoothly, no further deadzone thresholding should apply until the finger has lifted.
- As there are many different devices and users, there should be some kind of sensitivity or speed setting for the pointer movement in the touchpad mode.

Ticket imported from: #3597349. Ticket imported from: bugs/6214.

Change History (4)

comment:1 by SF/crazyterabyte, 7 years ago

I did some testing, using two apps called "TouchViewer" and "Multi-Touch Benchmark" to visualize the events being fired by the system.

Using a Galaxy Nexus, I noticed the finger events were fired for basically every 2 units of finger movement. In Galaxy Nexus phone, ScummVM mouse pointer seems a lot smoother.

The tablet is a Nook Tablet running Cyanogenmod. In this device, finger events are fired for every 5 pixels of finger movement, leading to a less smoother experience. This, together with ScummVM touchpad emulation code leads to a very poor user experience.

comment:2 by fuzzie, 7 years ago

Owner: set to fuzzie

comment:3 by Strangerke, 6 years ago

Component: --Unset--Ports

comment:4 by digitall, 12 months ago

Component: PortsPort: Android
Note: See TracTickets for help on using tickets.