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-12 14:38:36 +0000
commit0d1d4d0e0036a321227a17eab058b948aadedbf4 (patch)
tree6d26c6d5c0f138ca64f8a6de5dfbacc9d61c26a3
parentd728049372ee3020a11d28bb4d214a48876df630 (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.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);