diff options
| author | Volker Hilsheimer <volker.hilsheimer@qt.io> | 2022-07-11 10:44:02 +0200 |
|---|---|---|
| committer | Volker Hilsheimer <volker.hilsheimer@qt.io> | 2022-07-11 14:18:53 +0200 |
| commit | 6b871adfa2f75bf039de390d2b379ddea3aa3eae (patch) | |
| tree | 333a48e88535ee2e8cda79cba69574f0737b3916 /src/quick/handlers/qquickpointerhandler.cpp | |
| parent | e19328fb0fefdf60a111bb662bf6ce0df901ac8f (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.cpp | 7 |
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; } /*! |
