diff options
-rw-r--r-- | src/quick/util/qquickdeliveryagent.cpp | 2 |
1 files changed, 2 insertions, 0 deletions
diff --git a/src/quick/util/qquickdeliveryagent.cpp b/src/quick/util/qquickdeliveryagent.cpp index 3b045ed8e4..72b532d0a4 100644 --- a/src/quick/util/qquickdeliveryagent.cpp +++ b/src/quick/util/qquickdeliveryagent.cpp @@ -1520,10 +1520,12 @@ void QQuickDeliveryAgentPrivate::onGrabChanged(QObject *grabber, QPointingDevice void QQuickDeliveryAgentPrivate::ensureDeviceConnected(const QPointingDevice *dev) { + Q_Q(QQuickDeliveryAgent); if (knownPointingDevices.contains(dev)) return; knownPointingDevices.append(dev); connect(dev, &QPointingDevice::grabChanged, this, &QQuickDeliveryAgentPrivate::onGrabChanged); + QObject::connect(dev, &QObject::destroyed, q, [this, dev] {this->knownPointingDevices.removeAll(dev);}); } void QQuickDeliveryAgentPrivate::deliverPointerEvent(QPointerEvent *event) |