Details
-
Bug
-
Resolution: Done
-
P1: Critical
-
6.2
-
None
-
ubuntu20.10 deepin v20
-
-
efc02f9cc3 (qt/qtbase/dev) efc02f9cc3 (qt/tqtc-qtbase/dev) b0de19a831 (qt/qtbase/6.3) b0de19a831 (qt/tqtc-qtbase/6.3) b0de19a831 (qt/qtbase/6.3.1) 7380edaeb8 (qt/tqtc-qtbase/5.15) 7380edaeb8 (qt/tqtc-qtbase/5.15-vxworks)
Description
Use the touch screen to press and hold to pop up the menu, and short press the area outside the menu to make the menu disappear. Repeat this step, touch function will be unavailable.
When the menu is displayed and we touch again, we first receive Toubegin and TouchUpdate. By default, the touch event will be converted into a mouse press event, and the menu will be closed at this time. Then TouchEnd comes, but because the menu is closed platformWindowFromId(xiDeviceEvent->event) will return nullprt, so this TouchEnd message will not be sent, https://github.com/qt/qtbase/blob/dev/src/plugins/ platforms/xcb/qxcbconnection_xi2.cpp#L727
This will have two consequences
1. Because there is no TouchEnd message, the Point in dev->touchPoints will not be deleted. Repeat this operation, it will occupy more and more memory. https://github.com/qt/qtbase/blob/dev/src/plugins/platforms/xcb/qxcbconnection_xi2.cpp#L906
2. The touch is invalid. When there is no TouchEnd, the point in dev->touchPoints will not be deleted, at https://github.com/qt/qtbase/blob/dev/src/gui/kernel/qguiapplication.cpp# In L2880-L2890, mut.window() is empty, causing continue.
Attachments
Issue Links
- is duplicated by
-
QTBUG-98519 [REG: 5.15.0->5.15.7] xcb: Synthesized mouse from touch gets stuck if receiving widget gets destroyed
-
- Closed
-
-
QTBUG-109451 Touchscreen freezes after closing a dialog box with the WA_DeleteOnClose attribute
-
- Closed
-
- relates to
-
QTBUG-102751 Can not receive touch event after the widget that WindowFlags is Qt::Popup is closed on ubuntu20.04
-
- Closed
-