aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--src/quick/items/qquickevents.cpp10
-rw-r--r--src/quick/items/qquickevents_p_p.h2
2 files changed, 4 insertions, 8 deletions
diff --git a/src/quick/items/qquickevents.cpp b/src/quick/items/qquickevents.cpp
index 97183c55bc..49ed0f050e 100644
--- a/src/quick/items/qquickevents.cpp
+++ b/src/quick/items/qquickevents.cpp
@@ -534,13 +534,7 @@ QQuickPointerDevice *QQuickPointerDevice::tabletDevice(qint64 id)
void QQuickEventPoint::reset(Qt::TouchPointState state, const QPointF &scenePos, int pointId, ulong timestamp, const QVector2D &velocity)
{
m_scenePos = scenePos;
- if (m_pointId != pointId) {
- if (m_exclusiveGrabber) {
- qWarning() << m_exclusiveGrabber << "failed to ungrab previous point" << m_pointId;
- cancelExclusiveGrab();
- }
- m_pointId = pointId;
- }
+ m_pointId = pointId;
m_accept = false;
m_state = static_cast<QQuickEventPoint::State>(state);
m_timestamp = timestamp;
@@ -784,6 +778,8 @@ QQuickEventTouchPoint::QQuickEventTouchPoint(QQuickPointerTouchEvent *parent)
void QQuickEventTouchPoint::reset(const QTouchEvent::TouchPoint &tp, ulong timestamp)
{
QQuickEventPoint::reset(tp.state(), tp.scenePos(), tp.id(), timestamp, tp.velocity());
+ m_exclusiveGrabber.clear();
+ m_passiveGrabbers.clear();
m_rotation = tp.rotation();
m_pressure = tp.pressure();
m_ellipseDiameters = tp.ellipseDiameters();
diff --git a/src/quick/items/qquickevents_p_p.h b/src/quick/items/qquickevents_p_p.h
index 105cc9a3ea..c4200ac550 100644
--- a/src/quick/items/qquickevents_p_p.h
+++ b/src/quick/items/qquickevents_p_p.h
@@ -325,7 +325,7 @@ protected:
private:
QVector2D estimatedVelocity() const;
-private:
+protected:
QPointF m_pos;
QPointF m_scenePos;
QPointF m_scenePressPos;