summaryrefslogtreecommitdiffstats
path: root/src/widgets/kernel/qstandardgestures.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/widgets/kernel/qstandardgestures.cpp')
-rw-r--r--src/widgets/kernel/qstandardgestures.cpp10
1 files changed, 8 insertions, 2 deletions
diff --git a/src/widgets/kernel/qstandardgestures.cpp b/src/widgets/kernel/qstandardgestures.cpp
index e9de82d2357..314d82fd64f 100644
--- a/src/widgets/kernel/qstandardgestures.cpp
+++ b/src/widgets/kernel/qstandardgestures.cpp
@@ -348,8 +348,14 @@ QGestureRecognizer::Result QSwipeGestureRecognizer::recognize(QGesture *state,
result = QGestureRecognizer::Ignore;
break;
case QSwipeGesturePrivate::ThreePointsReached:
- result = (ev->touchPointStates() & QEventPoint::State::Pressed)
- ? QGestureRecognizer::CancelGesture : QGestureRecognizer::Ignore;
+ if (ev->touchPointStates() & QEventPoint::State::Pressed) {
+ result = QGestureRecognizer::CancelGesture;
+ } else if (d->verticalDirection != QSwipeGesture::NoDirection ||
+ d->horizontalDirection != QSwipeGesture::NoDirection) {
+ result = QGestureRecognizer::TriggerGesture;
+ } else {
+ result = QGestureRecognizer::Ignore;
+ }
break;
}
}