diff options
Diffstat (limited to 'src/testlib/qtestmouse.h')
-rw-r--r-- | src/testlib/qtestmouse.h | 26 |
1 files changed, 18 insertions, 8 deletions
diff --git a/src/testlib/qtestmouse.h b/src/testlib/qtestmouse.h index fa524fd8ca..e2835828a1 100644 --- a/src/testlib/qtestmouse.h +++ b/src/testlib/qtestmouse.h @@ -68,11 +68,16 @@ Q_GUI_EXPORT void qt_handleMouseEvent(QWindow *window, const QPointF &local, con Qt::MouseButtons state, Qt::MouseButton button, QEvent::Type type, Qt::KeyboardModifiers mods, int timestamp); +namespace QTestPrivate +{ + extern Q_TESTLIB_EXPORT Qt::MouseButtons qtestMouseButtons; +} + namespace QTest { enum MouseAction { MousePress, MouseRelease, MouseClick, MouseDClick, MouseMove }; - extern Q_TESTLIB_EXPORT Qt::MouseButton lastMouseButton; + extern Q_TESTLIB_EXPORT Qt::MouseButton lastMouseButton; // ### unsued extern Q_TESTLIB_EXPORT int lastMouseTimestamp; // This value is used to emulate timestamps to avoid creating double clicks by mistake. @@ -117,30 +122,35 @@ namespace QTest QPointF global = window->mapToGlobal(pos); QPointer<QWindow> w(window); + using namespace QTestPrivate; switch (action) { case MouseDClick: - qt_handleMouseEvent(w, pos, global, button, button, QEvent::MouseButtonPress, + qtestMouseButtons.setFlag(button, true); + qt_handleMouseEvent(w, pos, global, qtestMouseButtons, button, QEvent::MouseButtonPress, stateKey, ++lastMouseTimestamp); - qt_handleMouseEvent(w, pos, global, Qt::NoButton, button, QEvent::MouseButtonRelease, + qtestMouseButtons.setFlag(button, false); + qt_handleMouseEvent(w, pos, global, qtestMouseButtons, button, QEvent::MouseButtonRelease, stateKey, ++lastMouseTimestamp); Q_FALLTHROUGH(); case MousePress: case MouseClick: - qt_handleMouseEvent(w, pos, global, button, button, QEvent::MouseButtonPress, + qtestMouseButtons.setFlag(button, true); + qt_handleMouseEvent(w, pos, global, qtestMouseButtons, button, QEvent::MouseButtonPress, stateKey, ++lastMouseTimestamp); - lastMouseButton = button; + lastMouseButton = button; // ### unsued if (action == MousePress) break; Q_FALLTHROUGH(); case MouseRelease: - qt_handleMouseEvent(w, pos, global, Qt::NoButton, button, QEvent::MouseButtonRelease, + qtestMouseButtons.setFlag(button, false); + qt_handleMouseEvent(w, pos, global, qtestMouseButtons, button, QEvent::MouseButtonRelease, stateKey, ++lastMouseTimestamp); lastMouseTimestamp += mouseDoubleClickInterval; // avoid double clicks being generated - lastMouseButton = Qt::NoButton; + lastMouseButton = Qt::NoButton; // ### unsued break; case MouseMove: - qt_handleMouseEvent(w, pos, global, lastMouseButton, Qt::NoButton, QEvent::MouseMove, + qt_handleMouseEvent(w, pos, global, qtestMouseButtons, Qt::NoButton, QEvent::MouseMove, stateKey, ++lastMouseTimestamp); break; default: |