diff options
author | J-P Nurmi <jpnurmi@qt.io> | 2017-04-27 10:52:45 +0200 |
---|---|---|
committer | J-P Nurmi <jpnurmi@qt.io> | 2017-04-27 11:58:07 +0000 |
commit | 4bfa96a6926c8351e3f6ebda14235fd96fb146d2 (patch) | |
tree | 195fe975d08457d2c17ea578f194475449afdf24 | |
parent | 92cd0879c5e3031bb977e89ba1ef2efe99fd8456 (diff) |
QQuickDrawerPrivate::startDrag(): start delivering touch events
Change-Id: If483f0787568c18712fe0d2068d26709e6dd012d
Reviewed-by: Mitch Curtis <mitch.curtis@qt.io>
-rw-r--r-- | src/quicktemplates2/qquickdrawer.cpp | 35 |
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; } |