diff options
-rw-r--r-- | src/quick/items/qquickwindow.cpp | 7 |
1 files changed, 6 insertions, 1 deletions
diff --git a/src/quick/items/qquickwindow.cpp b/src/quick/items/qquickwindow.cpp index 6d602a3810..c3fd4560d2 100644 --- a/src/quick/items/qquickwindow.cpp +++ b/src/quick/items/qquickwindow.cpp @@ -1370,7 +1370,12 @@ bool QQuickWindow::event(QEvent *e) if (danpit == deliveryAgentsNeedingPoints.end()) { deliveryAgentsNeedingPoints.insert(ptda, QList<QEventPoint>() << pt); } else { - danpit.value().append(pt); + auto &ptList = danpit.value(); + auto ptid = pt.id(); + auto alreadyThere = std::find_if(ptList.constBegin(), ptList.constEnd(), + [ptid] (const QEventPoint &pep) { return pep.id() == ptid; }); + if (alreadyThere == ptList.constEnd()) + danpit.value().append(pt); } }; |