diff options
-rw-r--r-- | src/quick/items/qquickflickable.cpp | 3 | ||||
-rw-r--r-- | src/quick/items/qquickflickable_p_p.h | 3 | ||||
-rw-r--r-- | src/quick/items/qquicklistview.cpp | 18 |
3 files changed, 6 insertions, 18 deletions
diff --git a/src/quick/items/qquickflickable.cpp b/src/quick/items/qquickflickable.cpp index f29153967a..8c65962174 100644 --- a/src/quick/items/qquickflickable.cpp +++ b/src/quick/items/qquickflickable.cpp @@ -2444,7 +2444,8 @@ bool QQuickFlickable::filterMouseEvent(QQuickItem *receiver, QMouseEvent *event) bool QQuickFlickable::childMouseEventFilter(QQuickItem *i, QEvent *e) { Q_D(QQuickFlickable); - if (!isVisible() || !isEnabled() || !isInteractive() || !d->wantsPointerEvent(e)) { + Q_ASSERT(e->isPointerEvent()); + if (!isVisible() || !isEnabled() || !isInteractive() || !d->wantsPointerEvent(static_cast<QPointerEvent *>(e))) { d->cancelInteraction(); return QQuickItem::childMouseEventFilter(i, e); } diff --git a/src/quick/items/qquickflickable_p_p.h b/src/quick/items/qquickflickable_p_p.h index c85ccb733f..93b78d90de 100644 --- a/src/quick/items/qquickflickable_p_p.h +++ b/src/quick/items/qquickflickable_p_p.h @@ -208,8 +208,7 @@ public: void addPointerHandler(QQuickPointerHandler *h) override; - // TODO Qt 6: QPointerEvent - virtual bool wantsPointerEvent(const QEvent *) { return true; } + virtual bool wantsPointerEvent(const QPointerEvent *) { return true; } public: QQuickItem *contentItem; diff --git a/src/quick/items/qquicklistview.cpp b/src/quick/items/qquicklistview.cpp index ced9e27855..420ab620ab 100644 --- a/src/quick/items/qquicklistview.cpp +++ b/src/quick/items/qquicklistview.cpp @@ -146,7 +146,7 @@ public: void fixupHeader(); void fixupHeaderCompleted(); - bool wantsPointerEvent(const QEvent *event) override; + bool wantsPointerEvent(const QPointerEvent *event) override; QQuickListView::Orientation orient; qreal visiblePos; @@ -3828,24 +3828,12 @@ QQuickListViewAttached *QQuickListView::qmlAttachedProperties(QObject *obj) /*! \internal Prevents clicking or dragging through floating headers (QTBUG-74046). */ -bool QQuickListViewPrivate::wantsPointerEvent(const QEvent *event) +bool QQuickListViewPrivate::wantsPointerEvent(const QPointerEvent *event) { Q_Q(const QQuickListView); bool ret = true; - QPointF pos; - // TODO switch not needed in Qt 6: use points().first().position() - switch (event->type()) { - case QEvent::Wheel: - pos = static_cast<const QWheelEvent *>(event)->position(); - break; - case QEvent::MouseButtonPress: - pos = static_cast<const QMouseEvent *>(event)->position(); - break; - default: - break; - } - + QPointF pos = event->points().first().position(); if (!pos.isNull()) { if (auto header = q->headerItem()) { if (q->headerPositioning() != QQuickListView::InlineHeader && |