summaryrefslogtreecommitdiffstats
path: root/src/testlib/qtestmouse.h
diff options
context:
space:
mode:
authorVolker Hilsheimer <volker.hilsheimer@qt.io>2020-11-11 12:28:54 +0100
committerVolker Hilsheimer <volker.hilsheimer@qt.io>2020-11-12 15:25:06 +0100
commite796857abb73d44b6862687c353ee4977d22cc77 (patch)
tree7333e869e5d9c778d1518d8047dabd64a5b913e8 /src/testlib/qtestmouse.h
parent03e03d7ceb6da284f217fddd76b35d0c2b002af7 (diff)
Stop copying events in tests
It's unnecessary, and copying QEvents is a bad practice since it's a polymorphic class. Change-Id: Ieb6de106084f838c5e6c8a0643c54fd3c7f4a7a8 Reviewed-by: Lars Knoll <lars.knoll@qt.io>
Diffstat (limited to 'src/testlib/qtestmouse.h')
-rw-r--r--src/testlib/qtestmouse.h21
1 files changed, 13 insertions, 8 deletions
diff --git a/src/testlib/qtestmouse.h b/src/testlib/qtestmouse.h
index be68606bb2..865b967b34 100644
--- a/src/testlib/qtestmouse.h
+++ b/src/testlib/qtestmouse.h
@@ -208,21 +208,21 @@ namespace QTest
stateKey &= static_cast<unsigned int>(Qt::KeyboardModifierMask);
- QMouseEvent me(QEvent::User, QPointF(), Qt::LeftButton, QTestPrivate::qtestMouseButtons, stateKey, QPointingDevice::primaryPointingDevice());
+ QEvent::Type meType;
+ Qt::MouseButton meButton;
switch (action)
{
case MousePress:
- me = QMouseEvent(QEvent::MouseButtonPress, pos, widget->mapToGlobal(pos), button, button, stateKey, QPointingDevice::primaryPointingDevice());
- me.setTimestamp(++lastMouseTimestamp);
+ meType = QEvent::MouseButtonPress;
+ meButton = button;
break;
case MouseRelease:
- me = QMouseEvent(QEvent::MouseButtonRelease, pos, widget->mapToGlobal(pos), button, Qt::MouseButton(), stateKey, QPointingDevice::primaryPointingDevice());
- me.setTimestamp(++lastMouseTimestamp);
- lastMouseTimestamp += mouseDoubleClickInterval; // avoid double clicks being generated
+ meType = QEvent::MouseButtonRelease;
+ meButton = Qt::MouseButton();
break;
case MouseDClick:
- me = QMouseEvent(QEvent::MouseButtonDblClick, pos, widget->mapToGlobal(pos), button, button, stateKey, QPointingDevice::primaryPointingDevice());
- me.setTimestamp(++lastMouseTimestamp);
+ meType = QEvent::MouseButtonDblClick;
+ meButton = button;
break;
case MouseMove:
QCursor::setPos(widget->mapToGlobal(pos));
@@ -235,6 +235,11 @@ namespace QTest
default:
QTEST_ASSERT(false);
}
+ QMouseEvent me(meType, pos, widget->mapToGlobal(pos), button, meButton, stateKey, QPointingDevice::primaryPointingDevice());
+ me.setTimestamp(++lastMouseTimestamp);
+ if (action == MouseRelease) // avoid double clicks being generated
+ lastMouseTimestamp += mouseDoubleClickInterval;
+
QSpontaneKeyEvent::setSpontaneous(&me);
if (!qApp->notify(widget, &me)) {
static const char *const mouseActionNames[] =