aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--src/quick/items/qquickflickable.cpp3
-rw-r--r--src/quick/items/qquickflickable_p_p.h3
-rw-r--r--src/quick/items/qquicklistview.cpp18
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 &&