diff options
author | Shawn Rutledge <shawn.rutledge@qt.io> | 2020-09-16 22:22:24 +0200 |
---|---|---|
committer | Shawn Rutledge <shawn.rutledge@qt.io> | 2020-09-24 23:09:23 +0200 |
commit | 05dc0a387ae324f2d6f3d7e633a0a49473f6957a (patch) | |
tree | 6bdfeaa2e700fdab6c5091993928fbf45419eb25 /src/quick | |
parent | 8e3f40f8c62e94ef475f1c48d8f14df725b78a79 (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.
Task-number: QTBUG-77142
Change-Id: I1ccc8ffe0451d6417add2b03c063ac1aebe36e8e
Reviewed-by: Shawn Rutledge <shawn.rutledge@qt.io>
Diffstat (limited to 'src/quick')
-rw-r--r-- | src/quick/items/qquickitem.cpp | 6 | ||||
-rw-r--r-- | src/quick/items/qquickmultipointtoucharea.cpp | 4 |
2 files changed, 3 insertions, 7 deletions
diff --git a/src/quick/items/qquickitem.cpp b/src/quick/items/qquickitem.cpp index 8e6bb0f224..de43f2fb7d 100644 --- a/src/quick/items/qquickitem.cpp +++ b/src/quick/items/qquickitem.cpp @@ -8382,7 +8382,6 @@ QTouchEvent QQuickItemPrivate::localizedTouchEvent(const QTouchEvent *event, boo QEventPoint::States eventStates; bool anyPressOrReleaseInside = false; - bool anyStationaryWithModifiedPropertyInside = false; bool anyGrabber = false; for (auto &p : event->points()) { if (p.isAccepted()) @@ -8415,8 +8414,6 @@ QTouchEvent QQuickItemPrivate::localizedTouchEvent(const QTouchEvent *event, boo anyPressOrReleaseInside = true; QEventPoint pCopy(p); QMutableEventPoint mut = QMutableEventPoint::from(pCopy); - if (isInside && mut.stationaryWithModifiedProperty()) - anyStationaryWithModifiedPropertyInside = true; eventStates |= p.state(); mut.setPosition(localPos); touchPoints << mut; @@ -8424,8 +8421,7 @@ QTouchEvent QQuickItemPrivate::localizedTouchEvent(const QTouchEvent *event, boo // Now touchPoints will have only points which are inside the item. // But if none of them were just pressed inside, and the item has no other reason to care, ignore them anyway. - if ((eventStates == QEventPoint::State::Stationary && !anyStationaryWithModifiedPropertyInside) || - touchPoints.isEmpty() || (!anyPressOrReleaseInside && !anyGrabber && !isFiltering)) + if (touchPoints.isEmpty() || (!anyPressOrReleaseInside && !anyGrabber && !isFiltering)) return QTouchEvent(QEvent::None); // if all points have the same state, set the event type accordingly diff --git a/src/quick/items/qquickmultipointtoucharea.cpp b/src/quick/items/qquickmultipointtoucharea.cpp index 37fc928aee..23cf6c0351 100644 --- a/src/quick/items/qquickmultipointtoucharea.cpp +++ b/src/quick/items/qquickmultipointtoucharea.cpp @@ -638,8 +638,8 @@ void QQuickMultiPointTouchArea::updateTouchData(QEvent *event) addTouchPoint(&p); started = true; } else if ((touchPointState & QEventPoint::State::Updated) || - QMutableEventPoint::from(p).stationaryWithModifiedProperty()) { - // React to a stationary point with a property change (velocity, pressure) as if the point moved. (QTBUG-77142) + (touchPointState & QEventPoint::State::Stationary)) { + // React to a stationary point as if the point moved. (QTBUG-77142) QQuickTouchPoint* dtp = static_cast<QQuickTouchPoint*>(_touchPoints.value(id)); Q_ASSERT(dtp); _movedTouchPoints.append(dtp); |