aboutsummaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
authorSiyeon Seo <siyeon.seo@lge.com>2021-03-31 15:18:51 +0900
committerQt Cherry-pick Bot <cherrypick_bot@qt-project.org>2021-05-21 18:33:23 +0000
commit2a50c75fef5ecf02cf650aba8c39a33e8e8f1f2f (patch)
treecbd3ce529b26087ec38d01028a8baf0f76d11d98 /src
parent4ea5a0b72323614c436f8e8f03d4da64745247c2 (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.cpp2
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)