diff options
author | Shawn Rutledge <shawn.rutledge@qt.io> | 2021-06-03 10:39:52 +0200 |
---|---|---|
committer | Shawn Rutledge <shawn.rutledge@qt.io> | 2021-06-03 13:57:57 +0200 |
commit | 0336f08fec906af7e907d07d990a097a9a1d8726 (patch) | |
tree | 3b17c56044120d5787b7432e7981067df1bbdd58 /src/gui/kernel | |
parent | 169a248fdfab6cd5d35fde85e851b3ad235590b7 (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.cpp | 13 |
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; |