diff options
author | Shawn Rutledge <shawn.rutledge@qt.io> | 2020-09-16 21:44:33 +0200 |
---|---|---|
committer | Shawn Rutledge <shawn.rutledge@qt.io> | 2020-09-25 06:51:32 +0200 |
commit | 1783b048fd4c97e86de4a1122f64eb2afa603cbf (patch) | |
tree | 01e0e8175c95254ac379b7e765ce8e73c8a3a3e4 | |
parent | aa5f2bf8366913a6b88b401a6dfebcb7e6ad7c59 (diff) |
Get rid of QMutableEventPoint::stationaryWithModifiedProperty
Omitting stationary points from touch events is such a marginal
optimization that this code probably isn't worth maintaining.
It wasn't implemented correctly this time either, according to the
tst_QQuickMultiPointTouchArea::stationaryTouchWithChangingPressure()
test.
[ChangeLog][QtGui][QPointerEvent] We no longer attempt to avoid
delivery of stationary points within QTouchEvent: every pressed point
is now included in every TouchUpdate event.
Task-number: QTBUG-77142
Change-Id: If1fd666fb3057a17e0dffdd7ca7138693126b02b
Reviewed-by: Volker Hilsheimer <volker.hilsheimer@qt.io>
-rw-r--r-- | src/gui/kernel/qevent.cpp | 9 | ||||
-rw-r--r-- | src/gui/kernel/qevent_p.h | 5 | ||||
-rw-r--r-- | src/gui/kernel/qguiapplication.cpp | 6 |
3 files changed, 0 insertions, 20 deletions
diff --git a/src/gui/kernel/qevent.cpp b/src/gui/kernel/qevent.cpp index 322e5aeb31..91ebb9f784 100644 --- a/src/gui/kernel/qevent.cpp +++ b/src/gui/kernel/qevent.cpp @@ -472,15 +472,6 @@ void QMutableEventPoint::updateFrom(const QEventPoint &other) setPressure(0); break; - case QEventPoint::State::Stationary: - // Stationary points might not be delivered down to the receiving item - // and get their position transformed, keep the old values instead. - if (other.velocity() != velocity() || - !qFuzzyCompare(other.pressure(), pressure())) { - setStationaryWithModifiedProperty(); - } - Q_FALLTHROUGH(); - default: // update or stationary if (globalPosition() != other.globalPosition()) setGlobalLastPosition(globalPosition()); diff --git a/src/gui/kernel/qevent_p.h b/src/gui/kernel/qevent_p.h index 23a171e6ab..c923af92c9 100644 --- a/src/gui/kernel/qevent_p.h +++ b/src/gui/kernel/qevent_p.h @@ -88,7 +88,6 @@ struct QEventPointPrivate { int pointId = -1; QEventPoint::State state = QEventPoint::State::Unknown; bool accept = false; - bool stationaryWithModifiedProperty = false; }; // Private subclasses to allow accessing and modifying protected variables. @@ -119,8 +118,6 @@ public: void detach(); - bool stationaryWithModifiedProperty() const { return d->stationaryWithModifiedProperty; } - void setId(int pointId) { d->pointId = pointId; } void setDevice(const QPointingDevice *device) { d->device = device; } @@ -163,8 +160,6 @@ public: void setVelocity(const QVector2D &v) { d->velocity = v; } - void setStationaryWithModifiedProperty(bool s = true) { d->stationaryWithModifiedProperty = s; } - QWindow *window() const { return d->window.data(); } void setWindow(const QPointer<QWindow> &w) { d->window = w; } diff --git a/src/gui/kernel/qguiapplication.cpp b/src/gui/kernel/qguiapplication.cpp index ffb9b26ee7..a0ab112c8e 100644 --- a/src/gui/kernel/qguiapplication.cpp +++ b/src/gui/kernel/qguiapplication.cpp @@ -2856,7 +2856,6 @@ void QGuiApplicationPrivate::processTouchEvent(QWindowSystemInterfacePrivate::To self->lastTouchType = e->touchType; - bool stationaryTouchPointChangedProperty = false; QPointer<QWindow> window = e->window; // the platform hopefully tells us which window received the event QVarLengthArray<QMutableTouchEvent, 2> touchEvents; @@ -2944,11 +2943,6 @@ void QGuiApplicationPrivate::processTouchEvent(QWindowSystemInterfacePrivate::To case QEventPoint::State::Released: eventType = QEvent::TouchEnd; break; - case QEventPoint::State::Stationary: - // don't send the event if nothing changed - if (!stationaryTouchPointChangedProperty) - continue; - Q_FALLTHROUGH(); default: eventType = QEvent::TouchUpdate; break; |