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

tst_QQuickDrawer::Basic::slider fails after making Flickable handle touch events directly

    XMLWordPrintable

Details

    • Bug
    • Resolution: Done
    • P2: Important
    • 6.0.0 RC
    • 6.0.0 Beta3
    • Quick: Controls 2
    • None
    • a5ddb82ab49dca5fb2873963c87c4acfcb5cecdf (qt/qtquickcontrols2/dev)

    Description

      After https://codereview.qt-project.org/c/qt/qtdeclarative/+/315938 PS 14:

      FAIL! : tst_QQuickDrawer::Basic::slider(touch) Compared doubles are not the same (fuzzy compare)
      Actual (slider->value()): 1
      Expected (0.0) : 0
      Loc: [/home/rutledge/dev/qt6/qtquickcontrols2/tests/auto/qquickdrawer/tst_qquickdrawer.cpp(1324)]

      This is because QQuickDrawerPrivate::grabTouch() grabs it, because it thinks the drag threshold is exceeded, because the stored pressPoint is 0,0 at that time.

      1   QPointingDevicePrivate::setExclusiveGrabber            qpointingdevice.cpp  478  
      2   QPointerEvent::setExclusiveGrabber                     qevent.cpp           744  
      3   QQuickItem::grabTouchPoints                            qquickitem.cpp       7765 
      4   QQuickDrawerPrivate::grabTouch                         qquickdrawer.cpp     419  
      5   QQuickDrawer::childMouseEventFilter                    qquickdrawer.cpp     761  
      6   QQuickPopupItem::childMouseEventFilter                 qquickpopupitem.cpp  236  
      7   QQuickWindowPrivate::sendFilteredPointerEventImpl      qquickwindow.cpp     3239 
      8   QQuickWindowPrivate::sendFilteredPointerEventImpl      qquickwindow.cpp     3307 
      9   QQuickWindowPrivate::sendFilteredPointerEvent          qquickwindow.cpp     3189 
      10  QQuickWindowPrivate::deliverMatchingPointsToItem       qquickwindow.cpp     2927 
      11  QQuickWindowPrivate::deliverUpdatedPoints              qquickwindow.cpp     2771 
      12  QQuickWindowPrivate::deliverPointerEvent               qquickwindow.cpp     2646 
      13  QQuickWindowPrivate::handleTouchEvent                  qquickwindow.cpp     2446 
      14  QQuickOverlay::eventFilter                             qquickoverlay.cpp    517  
      15  QCoreApplicationPrivate::sendThroughObjectEventFilters qcoreapplication.cpp 1166 
      16  QCoreApplicationPrivate::notify_helper                 qcoreapplication.cpp 1195 
      

      pressPoint should not need to be stored now, because QEventPoint carries it; but still, something has changed unexpectedly.

      Attachments

        Issue Links

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

          Activity

            People

              srutledg Shawn Rutledge
              srutledg Shawn Rutledge
              Votes:
              0 Vote for this issue
              Watchers:
              1 Start watching this issue

              Dates

                Created:
                Updated:
                Resolved:

                Gerrit Reviews

                  There are no open Gerrit changes