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

Menu causes touch failure

    XMLWordPrintable

    Details

    • Platform/s:
      Linux/X11

      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

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

          Activity

            People

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

              Dates

              Created:
              Updated:

                Gerrit Reviews

                There is 1 open Gerrit change