From 13c0330511a54ad44a5f8bcad92738d6d652119b Mon Sep 17 00:00:00 2001 From: J-P Nurmi Date: Tue, 24 Jan 2017 11:20:51 +0100 Subject: Use keepTouchGrab instead of keepMouseGrab when handling touch events Change-Id: I7ea3db90fbafea68c094d1525ee28972823960ac Reviewed-by: Mitch Curtis --- src/quicktemplates2/qquickdial.cpp | 11 ++++++----- src/quicktemplates2/qquickrangeslider.cpp | 11 ++++++----- src/quicktemplates2/qquickslider.cpp | 9 +++++---- 3 files changed, 17 insertions(+), 14 deletions(-) diff --git a/src/quicktemplates2/qquickdial.cpp b/src/quicktemplates2/qquickdial.cpp index 2d24dddc..12f1d331 100644 --- a/src/quicktemplates2/qquickdial.cpp +++ b/src/quicktemplates2/qquickdial.cpp @@ -207,7 +207,7 @@ void QQuickDialPrivate::handlePress(const QPointF &point) void QQuickDialPrivate::handleMove(const QPointF &point) { Q_Q(QQuickDial); - if (!q->keepMouseGrab()) + if (!q->keepMouseGrab() && !q->keepTouchGrab()) return; const qreal oldPos = position; qreal pos = positionAt(point); @@ -227,7 +227,7 @@ void QQuickDialPrivate::handleMove(const QPointF &point) void QQuickDialPrivate::handleRelease(const QPointF &point) { Q_Q(QQuickDial); - if (q->keepMouseGrab()) { + if (q->keepMouseGrab() || q->keepTouchGrab()) { const qreal oldPos = position; qreal pos = positionAt(point); if (snapMode != QQuickDial::NoSnap) @@ -239,6 +239,7 @@ void QQuickDialPrivate::handleRelease(const QPointF &point) emit q->moved(); q->setKeepMouseGrab(false); + q->setKeepTouchGrab(false); } q->setPressed(false); @@ -708,13 +709,13 @@ void QQuickDial::touchEvent(QTouchEvent *event) if (point.id() != d->touchId) continue; - if (!keepMouseGrab()) { + if (!keepTouchGrab()) { bool overXDragThreshold = QQuickWindowPrivate::dragOverThreshold(point.pos().x() - d->pressPoint.x(), Qt::XAxis, &point); - setKeepMouseGrab(overXDragThreshold); + setKeepTouchGrab(overXDragThreshold); if (!overXDragThreshold) { bool overYDragThreshold = QQuickWindowPrivate::dragOverThreshold(point.pos().y() - d->pressPoint.y(), Qt::YAxis, &point); - setKeepMouseGrab(overYDragThreshold); + setKeepTouchGrab(overYDragThreshold); } } d->handleMove(point.pos()); diff --git a/src/quicktemplates2/qquickrangeslider.cpp b/src/quicktemplates2/qquickrangeslider.cpp index 683fd2bf..1ce16949 100644 --- a/src/quicktemplates2/qquickrangeslider.cpp +++ b/src/quicktemplates2/qquickrangeslider.cpp @@ -456,7 +456,7 @@ void QQuickRangeSliderPrivate::handlePress(const QPointF &point, int touchId) void QQuickRangeSliderPrivate::handleMove(const QPointF &point, int touchId) { Q_Q(QQuickRangeSlider); - if (!q->keepMouseGrab()) + if (!q->keepMouseGrab() && !q->keepTouchGrab()) return; QQuickRangeSliderNode *pressedNode = QQuickRangeSliderPrivate::pressedNode(touchId); if (pressedNode) { @@ -480,7 +480,7 @@ void QQuickRangeSliderPrivate::handleRelease(const QPointF &point, int touchId) return; QQuickRangeSliderNodePrivate *pressedNodePrivate = QQuickRangeSliderNodePrivate::get(pressedNode); - if (q->keepMouseGrab()) { + if (q->keepMouseGrab() || q->keepTouchGrab()) { qreal pos = positionAt(q, pressedNode->handle(), point); if (snapMode != QQuickRangeSlider::NoSnap) pos = snapPosition(q, pos); @@ -490,6 +490,7 @@ void QQuickRangeSliderPrivate::handleRelease(const QPointF &point, int touchId) else if (snapMode != QQuickRangeSlider::NoSnap) pressedNodePrivate->setPosition(pos); q->setKeepMouseGrab(false); + q->setKeepTouchGrab(false); } pressedNode->setPressed(false); pressedNodePrivate->touchId = -1; @@ -1013,11 +1014,11 @@ void QQuickRangeSlider::touchEvent(QTouchEvent *event) d->handlePress(point.pos(), point.id()); break; case Qt::TouchPointMoved: - if (!keepMouseGrab()) { + if (!keepTouchGrab()) { if (d->orientation == Qt::Horizontal) - setKeepMouseGrab(QQuickWindowPrivate::dragOverThreshold(point.pos().x() - point.startPos().x(), Qt::XAxis, &point)); + setKeepTouchGrab(QQuickWindowPrivate::dragOverThreshold(point.pos().x() - point.startPos().x(), Qt::XAxis, &point)); else - setKeepMouseGrab(QQuickWindowPrivate::dragOverThreshold(point.pos().y() - point.startPos().y(), Qt::YAxis, &point)); + setKeepTouchGrab(QQuickWindowPrivate::dragOverThreshold(point.pos().y() - point.startPos().y(), Qt::YAxis, &point)); } if (point.id() == QQuickRangeSliderNodePrivate::get(d->first)->touchId || point.id() == QQuickRangeSliderNodePrivate::get(d->second)->touchId) diff --git a/src/quicktemplates2/qquickslider.cpp b/src/quicktemplates2/qquickslider.cpp index 34f0f7d9..ff41595b 100644 --- a/src/quicktemplates2/qquickslider.cpp +++ b/src/quicktemplates2/qquickslider.cpp @@ -194,7 +194,7 @@ void QQuickSliderPrivate::handlePress(const QPointF &point) void QQuickSliderPrivate::handleMove(const QPointF &point) { Q_Q(QQuickSlider); - if (!q->keepMouseGrab()) + if (!q->keepMouseGrab() && !q->keepTouchGrab()) return; const qreal oldPos = position; qreal pos = positionAt(point); @@ -225,6 +225,7 @@ void QQuickSliderPrivate::handleRelease(const QPointF &point) if (!qFuzzyCompare(pos, oldPos)) emit q->moved(); q->setKeepMouseGrab(false); + q->setKeepTouchGrab(false); q->setPressed(false); } @@ -676,11 +677,11 @@ void QQuickSlider::touchEvent(QTouchEvent *event) if (point.id() != d->touchId) continue; - if (!keepMouseGrab()) { + if (!keepTouchGrab()) { if (d->orientation == Qt::Horizontal) - setKeepMouseGrab(QQuickWindowPrivate::dragOverThreshold(point.pos().x() - d->pressPoint.x(), Qt::XAxis, &point)); + setKeepTouchGrab(QQuickWindowPrivate::dragOverThreshold(point.pos().x() - d->pressPoint.x(), Qt::XAxis, &point)); else - setKeepMouseGrab(QQuickWindowPrivate::dragOverThreshold(point.pos().y() - d->pressPoint.y(), Qt::YAxis, &point)); + setKeepTouchGrab(QQuickWindowPrivate::dragOverThreshold(point.pos().y() - d->pressPoint.y(), Qt::YAxis, &point)); } d->handleMove(point.pos()); } -- cgit v1.2.3