Details
-
Bug
-
Resolution: Unresolved
-
P1: Critical
-
None
-
6.8.0
-
None
Description
We received quite a few crash reports about this: https://crash-reports.kde.org/organizations/kde/issues/77440
Backtrace goes like this:
QPointerEvent::pointingDevice (qevent.cpp:332) QPointerEvent::exclusiveGrabber (qevent.cpp:354)+0x616b71 QQuickPointerHandler::setExclusiveGrab (qquickpointerhandler.cpp:502) QQuickDeliveryAgentPrivate::onGrabChanged (qquickdeliveryagent.cpp:1866) ? (qobjectdefs_impl.h:486) doActivate<T> (qobject.cpp:4120) ? (qobjectdefs_impl.h:486) doActivate<T> (qobject.cpp:4120) QPointingDevice::grabChanged (moc_qpointingdevice.cpp:294) QPointingDevicePrivate::setExclusiveGrabber (qpointingdevice.cpp:516) QQuickDeliveryAgentPrivate::handleWindowDeactivate (qquickdeliveryagent.cpp:1416)
handleWindowDeactivate does devPriv->setExclusiveGrabber(nullptr, epd.eventPoint, nullptr);. In the end QPointerEvent::pointingDevice will try to dereference this nullptr event.
I didnt quite see how the QQuickDeliveryAgentPrivate::onGrabChanged -> QQuickPointerHandler::setExclusiveGrab works but my current theory is that QQuickTapHandler::onGrabChanged is happening which calls setPressed and the automatic crash reporting fails to resolve this overloaded method.