diff options
author | Siyeon Seo <siyeon.seo@lge.com> | 2021-03-31 15:18:51 +0900 |
---|---|---|
committer | Qt Cherry-pick Bot <cherrypick_bot@qt-project.org> | 2021-05-21 18:33:23 +0000 |
commit | 2a50c75fef5ecf02cf650aba8c39a33e8e8f1f2f (patch) | |
tree | cbd3ce529b26087ec38d01028a8baf0f76d11d98 /src | |
parent | 4ea5a0b72323614c436f8e8f03d4da64745247c2 (diff) |
Remove unplugged device in knownPointingDevices list
When the visible value of qquickitem is changed, a crash occurs
while accessing the physically unplugged device information from
the knownPointingDevices list.
Change-Id: I7f3190bc47ef068ca3d795216eedd6377fa25120
Reviewed-by: Fabian Kosmale <fabian.kosmale@qt.io>
(cherry picked from commit b567c3836b518c69a1a3d11dfdc36f7c5742f2b4)
Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org>
Diffstat (limited to 'src')
-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) |