diff options
author | Volker Hilsheimer <volker.hilsheimer@qt.io> | 2022-07-11 10:44:02 +0200 |
---|---|---|
committer | Qt Cherry-pick Bot <cherrypick_bot@qt-project.org> | 2022-07-12 06:12:18 +0000 |
commit | 86fb6ee923c1182bed4affcceef1f646ce8e1271 (patch) | |
tree | 5e69d69de92936b68c641a013a496108723a95fa /src/quick | |
parent | 7b61ac904a9b4d3d9b4eb6b9bb0f7e15b757341d (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
Change-Id: I37ddcb7b20760867ebfd3f23449c6a83088926aa
Reviewed-by: Mitch Curtis <mitch.curtis@qt.io>
Reviewed-by: Shawn Rutledge <shawn.rutledge@qt.io>
(cherry picked from commit 6b871adfa2f75bf039de390d2b379ddea3aa3eae)
Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org>
Diffstat (limited to 'src/quick')
-rw-r--r-- | src/quick/handlers/qquickpointerhandler.cpp | 7 |
1 files changed, 4 insertions, 3 deletions
diff --git a/src/quick/handlers/qquickpointerhandler.cpp b/src/quick/handlers/qquickpointerhandler.cpp index 4dc130d968..daf06d43cf 100644 --- a/src/quick/handlers/qquickpointerhandler.cpp +++ b/src/quick/handlers/qquickpointerhandler.cpp @@ -658,10 +658,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 { @@ -677,6 +679,7 @@ void QQuickPointerHandler::handlePointerEvent(QPointerEvent *event) } } } + d->currentEvent = nullptr; QQuickPointerHandlerPrivate::deviceDeliveryTargets(event->device()).append(this); } @@ -718,10 +721,8 @@ void QQuickPointerHandler::setActive(bool active) } } -void QQuickPointerHandler::handlePointerEventImpl(QPointerEvent *event) +void QQuickPointerHandler::handlePointerEventImpl(QPointerEvent *) { - Q_D(QQuickPointerHandler); - d->currentEvent = event; } /*! |