-
-
Notifications
You must be signed in to change notification settings - Fork 1.9k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Set All Controls
via touch screen does not prompt the user to set D-Pad up
#17157
Comments
Set All Controls
via touchscreen does not prompt the user to set D-Pad up
Set All Controls
via touch screen does not prompt the user to set D-Pad up
Reproduced on Android both with glui and ozone (so probably not menu driver dependent). Does not happen on desktop when mouse click is used to activate "Set all controls". |
Bit of a tricky issue. My current assumption after some time of checking the code, is that the quick tap function, which is reported by the android input driver as mouse button left, but only once, and either this is misinterpreted, or the pointer un-press event gets reported separately. In any case, the left mouse button will get immediately assigned to the bind (first bind, D-pad Up in case of bind all, or to the single bind if that was used), without having to hold anything. No solution yet, the code is a bit complex around here. |
btw, I often wish this menu had a way to set the interval for the keys recognition of set all controls higher. It's a bit easy to miss one and ruin a config especially if you have motor problems or some kind of arthrosis. |
|
Thank you for taking your time. Current hypothesis Proposed testing strategy Desktop verification attempt
Next steps
By systematically testing across platforms and configurations, we can better isolate whether the quick tap function is indeed the root cause of the touch screen problems in RetroArch. |
Could you please check if there is any source code related to quick tap in RetroArch releases other than Android, such as for GNU/Linux? If such code exists, we need someone to reproduce this issue using a touch screen on the desktop versions. If it does not exist, then we can rule out that this is an Android issue. |
After digging around a bit more, setting Bind Hold to a non-zero value will allow bind to function normally with a touchscreen as well. I am tempted to set bind hold default to 1 in case of Android builds as a workaround. Earlier PRs mention some problem, but it seems those are fixed already: #15909 #16256 Udev input driver may have similar input for tap, but it is unclear whether that also exhibits this problem or not. |
Description
Single-touch interactions on the touch screen function as an "OK" button within RetroArch's interface. Users often rely on this touch functionality to access and activate the "Set All Controls" option, which is crucial for configuring gamepad controls. This touch screen capability is particularly significant because there's no guarantee that the "OK" button will work properly on the gamepad's fallback profile. Without a functioning "OK" button on the gamepad, it could be impossible to activate "Set All Controls" using the controller alone. Therefore, the touch screen serves as a critical backup method to ensure users can access and initiate the gamepad configuration process, even when faced with potential limitations in the fallback profile.
However, when you activate
Set All Controls
via the touch screen, it does not prompt the user to set D-Pad up:Set All Controls
D-Pad Up
Expected behavior
Users should be prompted to press
D-Pad up
, just like they are for the other controls.Actual behavior
D-Pad up
is automatically assigned toMouse 1
, and the prompts continue withD-Pad down
,D-Pad left
,D-Pad right
, etc.Steps to reproduce the bug
Settings -> Input -> RetroPad Binds -> Port 1 Controls
.Set All Controls
using your finger (do not use any gamepad button to activate it).Version/Commit
You can find this information under Information/System Information:
Environment information
The text was updated successfully, but these errors were encountered: