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

DragHandler steals events from a MouseArea with preventStealing = true

XMLWordPrintable

    • Linux/X11
    • 090f404cf80da35734f712b02cc1543acecd5b62

      With the attached example the DragHandler steals the event from the MouseArea
      even if preventStealing is true.
      In particular we noticed that this behaviour is broken with touch screen and
      touch events. Conversaly interacting ONLY with mouse doesn't reproduce the
      problem, however the bug happens also with mouse too after touch interaction.
      To recap:

      • touch only: bug
      • mouse only: no bug
      • with mouse after some touch input: bug

      In particular the QtQuickControls 2 Popup seems to have a big role in this bug

      Steps for reproducing

      • BUG WITH TOUCH
        Try to drag the blue rectangle with a touch device.
        Nothing should happen since the mouse area has preventStealing (true) and thus should swallow the mouse events.
        What happen is that the orange rectagle is dragged effectively stealing the grab wrong
      • NO BUG WITH MOUSE
        Try to drag the blue rectangle with a mouse device. Nothing should happen
        since the mouse area should swallow the mouse events. ok
      • BUG WITH MOUSE AFTER USING TOUCH
        Try to drag the blue rectangle with a mouse device. Nothing should happen
        since the mouse area should swallow the mouse events. ok. Without closing
        the application do the same thing with touch events. You will trigger the bug
        as describe in the first example. Try to the same again with mouse. You will
        trigger the bug. wrong

        No reviews matched the request. Check your Options in the drop-down menu of this sections header.

            srutledg Shawn Rutledge
            n.peroni Nicola Peroni
            Votes:
            0 Vote for this issue
            Watchers:
            6 Start watching this issue

              Created:
              Updated:
              Resolved: