From d25dbb9a7b91107b15f6fb9e542d294d2f3361ec Mon Sep 17 00:00:00 2001 From: Giuseppe D'Angelo Date: Tue, 28 Jan 2025 10:36:58 +0100 Subject: [PATCH] tst_QGestureRecognizer: do not leak the point device MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit QTest::createTouchDevice() passes ownership of the device to the caller, so make sure to delete it. Change-Id: I100d3de9eab8ec9f88ed3e0850ada9d988bd962e Reviewed-by: Tor Arne Vestbø (cherry picked from commit 28d0e658e297b5de52fb0cccaede08179c7f4b8c) Reviewed-by: Qt Cherry-pick Bot (cherry picked from commit 8ef6d4ede857691798465eafcb7571f6c42c0ba9) --- .../qgesturerecognizer/tst_qgesturerecognizer.cpp | 13 +++++++------ 1 file changed, 7 insertions(+), 6 deletions(-) diff --git a/tests/auto/widgets/kernel/qgesturerecognizer/tst_qgesturerecognizer.cpp b/tests/auto/widgets/kernel/qgesturerecognizer/tst_qgesturerecognizer.cpp index cdab480d842..ecc2021d549 100644 --- a/tests/auto/widgets/kernel/qgesturerecognizer/tst_qgesturerecognizer.cpp +++ b/tests/auto/widgets/kernel/qgesturerecognizer/tst_qgesturerecognizer.cpp @@ -12,6 +12,7 @@ #include #include #include +#include class tst_QGestureRecognizer : public QObject { @@ -33,7 +34,7 @@ private Q_SLOTS: private: const int m_fingerDistance; - QPointingDevice *m_touchDevice; + std::unique_ptr m_touchDevice; }; tst_QGestureRecognizer::tst_QGestureRecognizer() @@ -164,7 +165,7 @@ void tst_QGestureRecognizer::panGesture() for (int i = 0; i < panPoints; ++i) points.append(QPoint(10 + i *20, 10 + i *20)); - QTest::QTouchEventWidgetSequence panSequence = QTest::touchEvent(&widget, m_touchDevice); + QTest::QTouchEventWidgetSequence panSequence = QTest::touchEvent(&widget, m_touchDevice.get()); pressSequence(panSequence, points, &widget); linearSequence(5, QPoint(20, 20), panSequence, points, &widget); releaseSequence(panSequence, points, &widget); @@ -207,7 +208,7 @@ void tst_QGestureRecognizer::pinchGesture() points.append(widget.rect().center()); points.append(points.front() + QPoint(0, 20)); - QTest::QTouchEventWidgetSequence pinchSequence = QTest::touchEvent(&widget, m_touchDevice); + QTest::QTouchEventWidgetSequence pinchSequence = QTest::touchEvent(&widget, m_touchDevice.get()); pressSequence(pinchSequence, points, &widget); for (int s = 0; s < 5; ++s) { @@ -264,7 +265,7 @@ void tst_QGestureRecognizer::swipeGesture() for (int i = 0; i < swipePoints - 1; ++i) points.append(fingerDistance + i * fingerDistance); - QTest::QTouchEventWidgetSequence swipeSequence = QTest::touchEvent(&widget, m_touchDevice); + QTest::QTouchEventWidgetSequence swipeSequence = QTest::touchEvent(&widget, m_touchDevice.get()); pressSequence(swipeSequence, points, &widget); // Press point #3 @@ -315,8 +316,8 @@ void tst_QGestureRecognizer::touchReplay() QWindow* windowHandle = parent.window()->windowHandle(); const QPoint globalPos = QPoint(42, 16); - QTest::touchEvent(windowHandle, m_touchDevice).press(1, globalPos); - QTest::touchEvent(windowHandle, m_touchDevice).release(1, globalPos); + QTest::touchEvent(windowHandle, m_touchDevice.get()).press(1, globalPos); + QTest::touchEvent(windowHandle, m_touchDevice.get()).release(1, globalPos); QVERIFY(widget.gestureReceived(gestureType)); }