diff options
Diffstat (limited to 'src/quick/items')
-rw-r--r-- | src/quick/items/qquicklistview.cpp | 17 | ||||
-rw-r--r-- | src/quick/items/qquicklistview_p.h | 2 |
2 files changed, 19 insertions, 0 deletions
diff --git a/src/quick/items/qquicklistview.cpp b/src/quick/items/qquicklistview.cpp index 9206628716..4dbb2b792c 100644 --- a/src/quick/items/qquicklistview.cpp +++ b/src/quick/items/qquicklistview.cpp @@ -3608,6 +3608,23 @@ QQuickListViewAttached *QQuickListView::qmlAttachedProperties(QObject *obj) return new QQuickListViewAttached(obj); } +bool QQuickListView::contains(const QPointF &point) const +{ + bool ret = QQuickItemView::contains(point); + // QTBUG-74046: if a mouse press "falls through" a floating header or footer, don't allow dragging the list from there + if (ret) { + if (auto header = headerItem()) { + if (headerPositioning() != QQuickListView::InlineHeader && header->contains(mapToItem(header, point))) + ret = false; + } + if (auto footer = footerItem()) { + if (footerPositioning() != QQuickListView::InlineFooter && footer->contains(mapToItem(footer, point))) + ret = false; + } + } + return ret; +} + QT_END_NAMESPACE #include "moc_qquicklistview_p.cpp" diff --git a/src/quick/items/qquicklistview_p.h b/src/quick/items/qquicklistview_p.h index 1c72a10190..be21b93155 100644 --- a/src/quick/items/qquicklistview_p.h +++ b/src/quick/items/qquicklistview_p.h @@ -179,6 +179,8 @@ public: static QQuickListViewAttached *qmlAttachedProperties(QObject *); + bool contains(const QPointF &point) const override; + public Q_SLOTS: void incrementCurrentIndex(); void decrementCurrentIndex(); |