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-06 22:38:45 +0200 |
commit | a7579771e35bfd7318bd80f7b59e6f53388e7e36 (patch) | |
tree | 0d374af5de4cb2ea14e2196f280a91443f5fbcd9 | |
parent | 4df72982059f529f9391e9d25923e88e6aa619f7 (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>
-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); |