summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--src/gui/kernel/qevent.cpp13
1 files changed, 13 insertions, 0 deletions
diff --git a/src/gui/kernel/qevent.cpp b/src/gui/kernel/qevent.cpp
index 4e6de35c94..db4e2624fa 100644
--- a/src/gui/kernel/qevent.cpp
+++ b/src/gui/kernel/qevent.cpp
@@ -2829,6 +2829,19 @@ QNativeGestureEvent::QNativeGestureEvent(Qt::NativeGestureType type, const QPoin
m_sequenceId(sequenceId), m_deltas(deltas), m_realValue(value), m_gestureType(type), m_fingerCount(fingerCount)
{
Q_ASSERT(fingerCount < 16); // we store it in 4 bits unsigned
+
+ // make correction to QEventPoint::state(): the QSinglePointEvent ctor doesn't get gesture type, defaults to Updated
+ auto &pt = QMutableEventPoint::from(m_points.first());
+ switch (type) {
+ case Qt::BeginNativeGesture:
+ pt.setState(QEventPoint::State::Pressed);
+ break;
+ case Qt::EndNativeGesture:
+ pt.setState(QEventPoint::State::Released);
+ break;
+ default:
+ break;
+ }
}
QNativeGestureEvent::~QNativeGestureEvent() = default;