diff options
author | Shawn Rutledge <shawn.rutledge@qt.io> | 2020-06-19 18:30:02 +0200 |
---|---|---|
committer | Shawn Rutledge <shawn.rutledge@qt.io> | 2020-06-22 20:21:34 +0200 |
commit | ff2e7d2cea324a6d9bc6add4234600400de6a932 (patch) | |
tree | 5969351c634b8170c67776ea4daf9ec119a83c61 /src/quick/items/qquickmultipointtoucharea.cpp | |
parent | 9045b94d1ad7e945475d52bba152fdbdb36debbf (diff) |
MultiPointTouchArea: don't emit canceled() during ordinary touch release
Amends 0012f8bd152a36a67abc696465f27d612625b5d9. For some reason
tst_QQuickMultiPointTouchArea::inFlickableWithPressDelay()'s check
QCOMPARE(flickable->property("cancelCount").toInt(), 0);
passed on Qt 5, but we get a canceled() signal in Qt 6.
Task-number: QTBUG-78818
Change-Id: Ib77bc4fc5774bd697247351c274bb5deb8cc4009
Reviewed-by: Jan Arve Sæther <jan-arve.saether@qt.io>
Diffstat (limited to 'src/quick/items/qquickmultipointtoucharea.cpp')
-rw-r--r-- | src/quick/items/qquickmultipointtoucharea.cpp | 5 |
1 files changed, 3 insertions, 2 deletions
diff --git a/src/quick/items/qquickmultipointtoucharea.cpp b/src/quick/items/qquickmultipointtoucharea.cpp index d2fc476038..35e458fa52 100644 --- a/src/quick/items/qquickmultipointtoucharea.cpp +++ b/src/quick/items/qquickmultipointtoucharea.cpp @@ -540,7 +540,7 @@ void QQuickMultiPointTouchArea::touchEvent(QTouchEvent *event) } updateTouchData(event); if (event->type() == QEvent::TouchEnd) - ungrab(); + ungrab(true); break; } case QEvent::TouchCancel: @@ -878,7 +878,8 @@ void QQuickMultiPointTouchArea::ungrab(bool normalRelease) if (_touchPoints.count()) { for (QObject *obj : qAsConst(_touchPoints)) static_cast<QQuickTouchPoint*>(obj)->setPressed(false); - emit canceled(_touchPoints.values()); + if (!normalRelease) + emit canceled(_touchPoints.values()); clearTouchLists(); for (QObject *obj : qAsConst(_touchPoints)) { QQuickTouchPoint *dtp = static_cast<QQuickTouchPoint*>(obj); |