diff --git a/src/quick/items/qquickpathview.cpp b/src/quick/items/qquickpathview.cpp index b9fea974c..52c0cc03c 100644 --- a/src/quick/items/qquickpathview.cpp +++ b/src/quick/items/qquickpathview.cpp @@ -1878,7 +1878,9 @@ bool QQuickPathView::childMouseEventFilter(QQuickItem *i, QEvent *e) void QQuickPathView::mouseUngrabEvent() { Q_D(QQuickPathView); - if (d->stealMouse) { + qreal targetOffset = std::fmod(qreal(d->modelCount - d->currentIndex), qreal(d->modelCount)); + bool stealMouse = d->stealMouse ? true : d->offset != targetOffset && !d->flicking; + if (stealMouse) { // if our mouse grab has been removed (probably by a Flickable), // fix our state d->stealMouse = false;