Windows: Don't crash in mouse handling when QApplication is recreated
We store the primary pointing device in a static variable to avoid the lookup for each mouse event. However, when QApplication is destroyed, then the device is destroyed, and the pointer needs to be reset so that QApplication can be created again by the same process without the first mouse event crashing the program. Use QPointer to prevent the pointer from becoming dangling. Fixes: QTBUG-99319 Pick-to: 6.2 6.3 Change-Id: Ie534c5eee48afb83e3a4adf70fc6cb4a2c310a7a Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@qt.io> Reviewed-by: Friedemann Kleint <Friedemann.Kleint@qt.io> Reviewed-by: André de la Rocha <andre.rocha@qt.io>bb10
parent
7bd243b3fb
commit
41f96866ee
|
|
@ -130,7 +130,9 @@ QWindowsMouseHandler::QWindowsMouseHandler() = default;
|
|||
|
||||
const QPointingDevice *QWindowsMouseHandler::primaryMouse()
|
||||
{
|
||||
static const auto result = QPointingDevice::primaryPointingDevice();
|
||||
static QPointer<const QPointingDevice> result;
|
||||
if (!result)
|
||||
result = QPointingDevice::primaryPointingDevice();
|
||||
return result;
|
||||
}
|
||||
|
||||
|
|
|
|||
Loading…
Reference in New Issue