aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorShawn Rutledge <shawn.rutledge@qt.io>2021-07-06 21:27:20 +0200
committerShawn Rutledge <shawn.rutledge@qt.io>2021-07-06 22:38:45 +0200
commita7579771e35bfd7318bd80f7b59e6f53388e7e36 (patch)
tree0d374af5de4cb2ea14e2196f280a91443f5fbcd9
parent4df72982059f529f9391e9d25923e88e6aa619f7 (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.cpp5
-rw-r--r--tests/auto/qmltest/events/tst_wheel.qml2
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);