diff options
author | Shawn Rutledge <shawn.rutledge@qt.io> | 2016-11-17 16:24:33 +0100 |
---|---|---|
committer | Shawn Rutledge <shawn.rutledge@qt.io> | 2016-11-17 16:24:33 +0100 |
commit | 0beb79fb0e9ed814b3e9447ccd97a0c099af9e4b (patch) | |
tree | 28f7411dc50f099ef0812c830525b4f50ed7ecf4 /src/quick/items/qquickflickable.cpp | |
parent | 12a3eff085bc7eb30a5283e32009d2899b464278 (diff) | |
parent | a7fd83cd0cecb789006baecabfc6a49c49b7f48c (diff) |
Merge branch remote-tracking branch 'origin/dev' into wip/pointerhandler
We no longer have any hope of getting this into 5.8.
Change-Id: I2decfa47e589ba7ae2d6b951c6517a2c311d0192
Diffstat (limited to 'src/quick/items/qquickflickable.cpp')
-rw-r--r-- | src/quick/items/qquickflickable.cpp | 19 |
1 files changed, 10 insertions, 9 deletions
diff --git a/src/quick/items/qquickflickable.cpp b/src/quick/items/qquickflickable.cpp index 6160e1ca1a..ef5ece625e 100644 --- a/src/quick/items/qquickflickable.cpp +++ b/src/quick/items/qquickflickable.cpp @@ -278,7 +278,7 @@ void QQuickFlickablePrivate::init() Returns the amount to overshoot by given a velocity. Will be roughly in range 0 - size/4 */ -qreal QQuickFlickablePrivate::overShootDistance(qreal size) +qreal QQuickFlickablePrivate::overShootDistance(qreal size) const { if (maxVelocity <= 0) return 0.0; @@ -875,9 +875,9 @@ bool QQuickFlickable::isAtYBeginning() const } \endcode */ -QQuickItem *QQuickFlickable::contentItem() +QQuickItem *QQuickFlickable::contentItem() const { - Q_D(QQuickFlickable); + Q_D(const QQuickFlickable); return d->contentItem; } @@ -952,7 +952,7 @@ void QQuickFlickable::setPixelAligned(bool align) } } -qint64 QQuickFlickablePrivate::computeCurrentTime(QInputEvent *event) +qint64 QQuickFlickablePrivate::computeCurrentTime(QInputEvent *event) const { if (0 != event->timestamp()) return event->timestamp(); @@ -961,7 +961,7 @@ qint64 QQuickFlickablePrivate::computeCurrentTime(QInputEvent *event) return timer.elapsed(); } -qreal QQuickFlickablePrivate::devicePixelRatio() +qreal QQuickFlickablePrivate::devicePixelRatio() const { return (window ? window->effectiveDevicePixelRatio() : qApp->devicePixelRatio()); } @@ -1557,11 +1557,11 @@ void QQuickFlickablePrivate::replayDelayedPress() // If we have the grab, release before delivering the event if (QQuickWindow *w = q->window()) { + replayingPressEvent = true; if (w->mouseGrabberItem() == q) q->ungrabMouse(); // Use the event handler that will take care of finding the proper item to propagate the event - replayingPressEvent = true; QCoreApplication::sendEvent(w, mouseEvent.data()); replayingPressEvent = false; } @@ -1591,7 +1591,7 @@ void QQuickFlickable::timerEvent(QTimerEvent *event) d->movementEndingTimer.stop(); d->pressed = false; d->stealMouse = false; - if (!d->velocityTimeline.isActive()) + if (!d->velocityTimeline.isActive() && !d->timeline.isActive()) movementEnding(true, true); } } @@ -1644,7 +1644,7 @@ void QQuickFlickable::viewportMoved(Qt::Orientations orient) void QQuickFlickablePrivate::viewportAxisMoved(AxisData &data, qreal minExtent, qreal maxExtent, qreal vSize, QQuickTimeLineCallback::Callback fixupCallback) { - if (pressed || calcVelocity) { + if (!scrollingPhase && (pressed || calcVelocity)) { int elapsed = data.velocityTime.restart(); if (elapsed > 0) { qreal velocity = (data.lastPos - data.move.value()) * 1000 / elapsed; @@ -2219,7 +2219,8 @@ void QQuickFlickable::mouseUngrabEvent() Q_D(QQuickFlickable); // if our mouse grab has been removed (probably by another Flickable), // fix our state - d->cancelInteraction(); + if (!d->replayingPressEvent) + d->cancelInteraction(); } void QQuickFlickablePrivate::cancelInteraction() |