Priority: P1: Critical
Affects Version/s: 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
Fix Version/s: None
Component/s: Quick: Mouse Touch and Tablet input
Thanks to Shawn Rutledge’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.
On android devices the MouseArea becomes irreversibly unresponsive if touched in an unusual way.
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
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.