Fix BaseButton popup unresponsive on touchscreen after first tap - #118542
Conversation
I have no way to test on iOS. However, I believe I've found another issue, starting around the 5-second mark, which occurs repeatedly whenever the Or is this issue identical to the one on iOS? It's also reproducible in the Android template and, as shown in the video, with the web template (Android, Google Chrome). test.mp4 |
There was a problem hiding this comment.
Tested on:
- MacOS (+ Web: Safari and Google Chrome)
- Android (+Web: Google Chrome)
https://alex2782.github.io/multitouch/master/
https://alex2782.github.io/multitouch/PR_118542/
Test project: multitouch.zip
I extended MRP, added three buttons, and linked them with GdScript (down/up/pressed), the behavior is identical. master branch und this PR, multitouch down/ up events don't work, only with a maximum of 1 button at a time.
--> I created an issue report: #118581
If there are more critical regressions, then reverting PR #110893 would also be an option. This PR at least fixes the issue shown in the video above.
|
I recorded videos on iOS Safari comparing master and this PR using the MRP.
|
bruvzg
left a comment
There was a problem hiding this comment.
https://alex2782.github.io/multitouch/master/
https://alex2782.github.io/multitouch/PR_118542/
Tested using these links in Safari on iPadOS 26.4. I can reproduce the issue, and it seems to be fixed.
|
Thanks! |
Fix BaseButton popup unresponsive on touchscreen after first tap
Fixes #118517.
Regression from #110893.
On mobile browsers (e.g. iOS Safari), a tap delivers both touch and mouse events, and a popup opened from the
button becomes modal before the matching touch release is dispatched. The release is consumed by the popup,
leaving status.touch_index set so later taps are dropped as non-matching indices. Also only update
status.device_id while no touch interaction is active, so the originating device keeps ownership until its
release is processed.