Uploaded image for project: 'Qt'
  1. Qt
  2. QTBUG-94557

Menu causes touch failure

    XMLWordPrintable

Details

    • Linux/X11
    • 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

          For Gerrit Dashboard: QTBUG-94557
          # Subject Branch Project Status CR V

          Activity

            People

              srutledg Shawn Rutledge
              tanghaixiang haixiang tang
              Votes:
              0 Vote for this issue
              Watchers:
              5 Start watching this issue

              Dates

                Created:
                Updated:
                Resolved: