summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorShawn Rutledge <shawn.rutledge@qt.io>2020-09-16 21:44:33 +0200
committerShawn Rutledge <shawn.rutledge@qt.io>2020-09-25 06:51:32 +0200
commit1783b048fd4c97e86de4a1122f64eb2afa603cbf (patch)
tree01e0e8175c95254ac379b7e765ce8e73c8a3a3e4
parentaa5f2bf8366913a6b88b401a6dfebcb7e6ad7c59 (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.cpp9
-rw-r--r--src/gui/kernel/qevent_p.h5
-rw-r--r--src/gui/kernel/qguiapplication.cpp6
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;