Details
-
Bug
-
Resolution: Done
-
P1: Critical
-
None
-
5.10.0, 5.10.1, 5.11.0, 5.11.1, 5.11.2, 5.12.0 RC, 5.12.1, 5.12.2, 5.13.0 Beta 1, 5.15
-
-
64d62c53c1e92a1cc07449a0ea3c71501592c1e7 (qt/qtbase/dev) 82121b2fbf80fc39d8a7bab9e8e9a8c545f1ffd3 (qt/qtbase/5.15)
Description
<UDPATE>
Thanks to srutledg’s help, I found what causes this bug.
Modern Android devices can recognize certain hand gestures (see attached pictures). For example:
- on Xiaomi and Huawei devices you can take a screenshot by sliding 3 fingers down
- on Samsung devices you can take a screenshot by swiping the edge of your hand across the screen [called: Palm swipe].
- on Samsung devices you can mute incoming calls or alarms by putting your hand over the screen [called: Easy mute].
Probably the following happens:
- The MouseArea captures the Press event.
- The OS recognizes it as a gesture, not a touch.
"Xiaomi: D ViewRootImpl: cancle motionEvent because of threeGesture detecting" - The MouseArea never gets notified that the Press was cancelled due to gesture recognition.
</UDPATE>
On android devices the MouseArea becomes irreversibly unresponsive if touched in an unusual way.
Tested devices:
FAILED: Samsung Galaxy TAB A 2016 (SM-T585) – Android 7.0
- Touching with palm: https://youtu.be/yhQXaVbgCeo
- Touching with side of hand: https://youtu.be/4bUE5iYczUY
FAILED: Xiaomi Redmi Note 5 Pro – Android 8.1.0
- Sliding three fingers: https://youtu.be/bv_QMBVvoLY
FAILED: Huawei P9 Lite (2017) – Android 8.0.
- Sliding multiple fingers: https://youtu.be/oh7a7TH-ZTI
FAILED: Samsung Galaxy Edge S7 – Android 8.0.
- Touching with side of hand: https://youtu.be/HEVyS1CEhs0
FAILED: Samsung Galaxy A7 2015 – Android 6.0.1
OK: Lenovo Moto Z – Android 8.0
OK: OnePlus 5 – Android 8.1
OK: Samsung Galaxy Tab 3 Lite (SM-T110) – Android 4.2.2
OK: Asus Nexus 7 (2012) – Android 5.1.1
OK: Vodafone Smart Mini – Android 4.1.1
The error message:
W libMouseTest.so: (null):0 ((null)): TouchPointPressed without previous release event QQuickEventPoint(accepted:false state:Pressed scenePos:QPointF(714.667,504.667) id:2000001 timeHeld:0)
I attach an example project and a test apk built with Qt 5.12.0 RC2.
This bug is a big problem for my users living with movement disability as the program freezes easily after a not well-controlled touch. Please help me solve this issue. Any quick workaround would be much appreciated as hundreds of my users have reported this problem.