aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorJ-P Nurmi <jpnurmi@qt.io>2017-04-27 10:52:45 +0200
committerJ-P Nurmi <jpnurmi@qt.io>2017-04-27 11:58:07 +0000
commit4bfa96a6926c8351e3f6ebda14235fd96fb146d2 (patch)
tree195fe975d08457d2c17ea578f194475449afdf24
parent92cd0879c5e3031bb977e89ba1ef2efe99fd8456 (diff)
QQuickDrawerPrivate::startDrag(): start delivering touch events
Change-Id: If483f0787568c18712fe0d2068d26709e6dd012d Reviewed-by: Mitch Curtis <mitch.curtis@qt.io>
-rw-r--r--src/quicktemplates2/qquickdrawer.cpp35
1 files changed, 19 insertions, 16 deletions
diff --git a/src/quicktemplates2/qquickdrawer.cpp b/src/quicktemplates2/qquickdrawer.cpp
index 3275a0b2..76a09d11 100644
--- a/src/quicktemplates2/qquickdrawer.cpp
+++ b/src/quicktemplates2/qquickdrawer.cpp
@@ -258,27 +258,30 @@ bool QQuickDrawerPrivate::startDrag(QEvent *event)
if (!window || !interactive || dragMargin < 0.0 || qFuzzyIsNull(dragMargin))
return false;
- bool withinMargin = false;
- bool mouse = event->type() == QEvent::MouseButtonPress;
- if (mouse) {
- withinMargin = isWithinDragMargin(q, static_cast<QMouseEvent *>(event)->windowPos());
- } else {
+ switch (event->type()) {
+ case QEvent::MouseButtonPress:
+ if (isWithinDragMargin(q, static_cast<QMouseEvent *>(event)->windowPos())) {
+ prepareEnterTransition();
+ reposition();
+ return handleMouseEvent(window->contentItem(), static_cast<QMouseEvent *>(event));
+ }
+ break;
+
+ case QEvent::TouchBegin:
+ case QEvent::TouchUpdate:
for (const QTouchEvent::TouchPoint &point : static_cast<QTouchEvent *>(event)->touchPoints()) {
- if (isWithinDragMargin(q, point.scenePos())) {
- withinMargin = true;
- break;
+ if (point.state() == Qt::TouchPointPressed && isWithinDragMargin(q, point.scenePos())) {
+ prepareEnterTransition();
+ reposition();
+ return handleTouchEvent(window->contentItem(), static_cast<QTouchEvent *>(event));
}
}
- }
- if (!withinMargin)
- return false;
+ break;
- prepareEnterTransition();
- reposition();
- if (mouse) {
- handleMouseEvent(window->contentItem(), static_cast<QMouseEvent *>(event));
- return true;
+ default:
+ break;
}
+
return false;
}