void QQuickMultiPointTouchArea::clearTouchLists() { for (QObject *obj : qAsConst(_releasedTouchPoints)) { QQuickTouchPoint *dtp = static_cast<QQuickTouchPoint*>(obj); if (!dtp->isQmlDefined()) { _touchPoints.remove(dtp->pointId()); delete dtp; } else { dtp->setInUse(false); } } _releasedTouchPoints.clear(); _pressedTouchPoints.clear(); _movedTouchPoints.clear(); }
void QQuickMultiPointTouchArea::ungrab() { _stealMouse = false; setKeepMouseGrab(false); setKeepTouchGrab(false); ungrabTouchPoints(); if (_touchPoints.count()) { for (QObject *obj : qAsConst(_touchPoints)) static_cast<QQuickTouchPoint*>(obj)->setPressed(false); emit canceled(_touchPoints.values()); clearTouchLists(); for (QObject *obj : qAsConst(_touchPoints)) { QQuickTouchPoint *dtp = static_cast<QQuickTouchPoint*>(obj); if (!dtp->isQmlDefined()) delete dtp; else dtp->setInUse(false); } _touchPoints.clear(); emit touchUpdated(QList<QObject*>()); } }