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

pointer events end up with accepted state == false after successful delivery

    XMLWordPrintable

    Details

    • Type: Bug
    • Status: Reported
    • Priority: P2: Important
    • Resolution: Unresolved
    • Affects Version/s: 6.2, 6.5.0 FF
    • Fix Version/s: None
    • Labels:
      None

      Description

      One reason is in QQuickDeliveryAgentPrivate::deliverPointerEvent():

          if (event->isBeginEvent()) {
              ensureDeviceConnected(event->pointingDevice());
              if (!deliverPressOrReleaseEvent(event))
                  event->setAccepted(false);
          }
      

      deliverPressOrReleaseEvent() returned false after trying to click a Switch.

      The ending state often doesn't matter in practice; but QGuiApplicationPrivate::processMouseEvent() synthesizes touch events if AA_SynthesizeTouchForUnhandledMouseEvents is set (which ought to be rare); and maybe we actually want to come up with a way to detect that a mouse press (or touch press) was completely un-handled. And maybe some QPA plugins could care: WindowSystemEvent::eventAccepted is set according to the ending accepted state of the QMouseEvent, and as long as delivery is synchronous, the reason is so that the platform plugin can see the result: was the event delivered successfully or not.

        Attachments

          Issue Links

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

            Activity

              People

              Assignee:
              srutledg Shawn Rutledge
              Reporter:
              srutledg Shawn Rutledge
              Votes:
              0 Vote for this issue
              Watchers:
              2 Start watching this issue

                Dates

                Created:
                Updated:

                  Gerrit Reviews