summaryrefslogtreecommitdiffstats
path: root/src/gui/kernel
diff options
context:
space:
mode:
authorShawn Rutledge <shawn.rutledge@qt.io>2021-06-03 10:39:52 +0200
committerShawn Rutledge <shawn.rutledge@qt.io>2021-06-03 13:57:57 +0200
commit0336f08fec906af7e907d07d990a097a9a1d8726 (patch)
tree3b17c56044120d5787b7432e7981067df1bbdd58 /src/gui/kernel
parent169a248fdfab6cd5d35fde85e851b3ad235590b7 (diff)
Use Pressed/Released eventpoint state with native gesture begin/end
The QSinglePointEvent is mostly responsible for setting QEventPoint::state(); but in this case we need to decide based on Qt::NativeGestureType, so it needs to be refined in the QNativeGestureEvent constructor. Fixes: QTBUG-94178 Change-Id: I9799fe5b8fea71f934311ae2f3bb8e033d132ec5 Reviewed-by: Povilas Kanapickas <povilas@radix.lt> Reviewed-by: Fabian Kosmale <fabian.kosmale@qt.io>
Diffstat (limited to 'src/gui/kernel')
-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;