Details
-
Bug
-
Resolution: Out of scope
-
P2: Important
-
None
-
5.15.6, 6.2.0
-
None
-
Ubuntu 20.04.3 LTS
Touchscreen: IIYAMA PROLITE TF2415MC-B2 (https://iiyama.com/gl_en/products/prolite-tf2415mc-b2/)
Description
Dear Qt team,
I discovered a touch input problem with QtQuick (qml) in Qt 5 and Qt 6 on Ubuntu. Press(down) events appear with a delay of ~170ms in Qt. The weird thing is, that release(up) and click events are working as expected. Only press(down) has this delay. To exclude a system/hardware problem I checked the logs from xinput, press events have no delay there.
The problem appears in PySide2, PySide6 and qmlscene (Qt 5 and Qt 6). I did not check older versions.
I used different types of Iiyama touch screens (e.g. IIYAMA PROLITE TF2415MC-B2).
How to reproduce the problem:
- Connect a touchscreen to your Ubuntu system (20.04.3 LTS)
- Download the online installer for Ubuntu and install Qt 6.2.0
- Install moreutils to add time stamps to xinput outputs:
sudo apt install moreutils - Create a qml file with (main.qml):
import QtQuick 2.2 import QtQuick.Window 2.2 Window { title: "test" width: 800 height: 600 visible: true Rectangle { anchors.fill: parent color: "blue" } }
- Start the Qt application with qmlscene: QT_LOGGING_RULES="qt.quick.touch=true" QT_MESSAGE_PATTERN="%{time hh:mm:ss.zzzzzz}: %{message}" qmlscene main.qml
- Start xinput logging to proof the delay (check xinput list to get the ID of your touch device):
xinput test 10 | ts '%H:%M:%.S' - Press the blue Qt window
- Output qmlscene:
15:45:01.999999: QQuickDeliveryAgent(root=QQuickRootItem) QTouchEvent(TouchBegin device: "eGalax Inc. eGalaxTouch EXC3188-4623-09.00.00.00" states: Pressed, 1 points: QList(QEventPoint(id=133 ts=93229220 pos=461.982,384.642 scn=461.982,384.642 gbl=1169.98,658.642 Pressed vel=0,0 press=461.982,384.642 last=461.982,384.642 \u0394 0,0))) 15:45:04.004004: QQuickDeliveryAgent(root=QQuickRootItem) QTouchEvent(TouchEnd device: "eGalax Inc. eGalaxTouch EXC3188-4623-09.00.00.00" states: Released, 1 points: QList(QEventPoint(id=133 ts=93231399 pos=461.982,384.642 scn=461.982,384.642 gbl=1169.98,658.642 Released vel=0,0 press=461.982,384.642 last=461.982,384.642 \u0394 0,0)))
- Output xinput:
15:45:01.825381 motion a[0]=39935 a[1]=39967 15:45:01.825792 button press 1 a[0]=39935 a[1]=39967 15:45:04.004288 motion a[0]=39935 a[1]=39967 15:45:04.004419 button release 1 a[0]=39935 a[1]=39967
You will see the delay of press events the terminal outputs
Please let me know if this problem could be solved.
Thank you.