diff options
author | Shawn Rutledge <shawn.rutledge@qt.io> | 2021-07-06 21:27:20 +0200 |
---|---|---|
committer | Shawn Rutledge <shawn.rutledge@qt.io> | 2021-07-12 14:38:36 +0000 |
commit | 0d1d4d0e0036a321227a17eab058b948aadedbf4 (patch) | |
tree | 6d26c6d5c0f138ca64f8a6de5dfbacc9d61c26a3 | |
parent | d728049372ee3020a11d28bb4d214a48876df630 (diff) |
QtTest: use delay properly in mouseWheel()
As in mouseEvent(), it's not the qWait() that usually matters as much
as the timestamp difference that the delivery code will see.
Task-number: QTBUG-56075
Change-Id: Ifc3b0830b6973997916465f3a9313d607428ede1
Reviewed-by: Shawn Rutledge <shawn.rutledge@qt.io>
(cherry picked from commit a7579771e35bfd7318bd80f7b59e6f53388e7e36)
-rw-r--r-- | src/qmltest/quicktestevent.cpp | 5 | ||||
-rw-r--r-- | tests/auto/qmltest/events/tst_wheel.qml | 2 |
2 files changed, 5 insertions, 2 deletions
diff --git a/src/qmltest/quicktestevent.cpp b/src/qmltest/quicktestevent.cpp index a1a707d2d6..1ed642fe07 100644 --- a/src/qmltest/quicktestevent.cpp +++ b/src/qmltest/quicktestevent.cpp @@ -240,8 +240,10 @@ namespace QtQuickTest QTEST_ASSERT(item); if (delay == -1 || delay < QTest::defaultMouseDelay()) delay = QTest::defaultMouseDelay(); - if (delay > 0) + if (delay > 0) { QTest::qWait(delay); + lastMouseTimestamp += delay; + } QPoint pos; QQuickItem *sgitem = qobject_cast<QQuickItem *>(item); @@ -254,6 +256,7 @@ namespace QtQuickTest stateKey &= static_cast<unsigned int>(Qt::KeyboardModifierMask); QWheelEvent we(pos, window->mapToGlobal(pos), QPoint(0, 0), QPoint(xDelta, yDelta), buttons, stateKey, Qt::NoScrollPhase, false); + we.setTimestamp(++lastMouseTimestamp); QSpontaneKeyEvent::setSpontaneous(&we); // hmmmm if (!qApp->notify(window, &we)) diff --git a/tests/auto/qmltest/events/tst_wheel.qml b/tests/auto/qmltest/events/tst_wheel.qml index 96338a51ec..fc38141971 100644 --- a/tests/auto/qmltest/events/tst_wheel.qml +++ b/tests/auto/qmltest/events/tst_wheel.qml @@ -64,7 +64,7 @@ Rectangle { verify(flick.contentX == 0); flick.contentY = 0; verify(flick.contentY == 0); - mouseWheel(flick, 200, 200, -120, 0, Qt.NoButton, Qt.NoModifier, -1); + mouseWheel(flick, 200, 200, -120, 0, Qt.NoButton, Qt.NoModifier, 100); wait(1000); verify(flick.contentX > 0); verify(flick.contentY == 0); |