aboutsummaryrefslogtreecommitdiffstats
path: root/src/quick/handlers/qquickpointerhandler.cpp
diff options
context:
space:
mode:
authorVolker Hilsheimer <volker.hilsheimer@qt.io>2022-07-11 10:44:02 +0200
committerVolker Hilsheimer <volker.hilsheimer@qt.io>2022-07-11 14:18:53 +0200
commit6b871adfa2f75bf039de390d2b379ddea3aa3eae (patch)
tree333a48e88535ee2e8cda79cba69574f0737b3916 /src/quick/handlers/qquickpointerhandler.cpp
parente19328fb0fefdf60a111bb662bf6ce0df901ac8f (diff)
Consistently set and reset QQuickPointerHandler's currentEvent
Set the pointer before we deliver to the handler implementation, and reset to nullptr afterwards. Fixes: QTBUG-104325 Pick-to: 6.4 6.3 6.2 Change-Id: I37ddcb7b20760867ebfd3f23449c6a83088926aa Reviewed-by: Mitch Curtis <mitch.curtis@qt.io> Reviewed-by: Shawn Rutledge <shawn.rutledge@qt.io>
Diffstat (limited to 'src/quick/handlers/qquickpointerhandler.cpp')
-rw-r--r--src/quick/handlers/qquickpointerhandler.cpp7
1 files changed, 4 insertions, 3 deletions
diff --git a/src/quick/handlers/qquickpointerhandler.cpp b/src/quick/handlers/qquickpointerhandler.cpp
index 011928329b..018a09fcc2 100644
--- a/src/quick/handlers/qquickpointerhandler.cpp
+++ b/src/quick/handlers/qquickpointerhandler.cpp
@@ -637,10 +637,12 @@ bool QQuickPointerHandler::event(QEvent *e)
void QQuickPointerHandler::handlePointerEvent(QPointerEvent *event)
{
+ Q_D(QQuickPointerHandler);
bool wants = wantsPointerEvent(event);
qCDebug(lcPointerHandlerDispatch) << metaObject()->className() << objectName()
<< "on" << parent()->metaObject()->className() << parent()->objectName()
<< (wants ? "WANTS" : "DECLINES") << event;
+ d->currentEvent = event;
if (wants) {
handlePointerEventImpl(event);
} else {
@@ -656,6 +658,7 @@ void QQuickPointerHandler::handlePointerEvent(QPointerEvent *event)
}
}
}
+ d->currentEvent = nullptr;
QQuickPointerHandlerPrivate::deviceDeliveryTargets(event->device()).append(this);
}
@@ -697,10 +700,8 @@ void QQuickPointerHandler::setActive(bool active)
}
}
-void QQuickPointerHandler::handlePointerEventImpl(QPointerEvent *event)
+void QQuickPointerHandler::handlePointerEventImpl(QPointerEvent *)
{
- Q_D(QQuickPointerHandler);
- d->currentEvent = event;
}
/*!