66 Qt::KeyboardModifiers stateKey, QPoint pos,
int delay=-1)
69 extern int Q_TESTLIB_EXPORT defaultMouseDelay();
72 const QSize windowSize = window->geometry().size();
73 if (windowSize.width() <= pos.x() || windowSize.height() <= pos.y()) {
74 qWarning(
"Mouse event at %d, %d occurs outside target window (%dx%d).",
75 pos.x(), pos.y(), windowSize.width(), windowSize.height());
78 int actualDelay = qMax(1, (delay == -1 || delay < defaultMouseDelay()) ? defaultMouseDelay() : delay);
81 pos = QPoint(window->width() / 2, window->height() / 2);
83 QTEST_ASSERT(!stateKey || stateKey & Qt::KeyboardModifierMask);
85 stateKey &= Qt::KeyboardModifierMask;
87 QPointF global = window->mapToGlobal(pos);
88 QPointer<QWindow> w(window);
94 qtestMouseButtons.setFlag(button,
true);
96 qt_handleMouseEvent(w, pos, global, qtestMouseButtons, button, QEvent::MouseButtonPress,
97 stateKey, lastMouseTimestamp);
98 qtestMouseButtons.setFlag(button,
false);
100 qt_handleMouseEvent(w, pos, global, qtestMouseButtons, button, QEvent::MouseButtonRelease,
101 stateKey, lastMouseTimestamp);
105 qtestMouseButtons.setFlag(button,
true);
107 qt_handleMouseEvent(w, pos, global, qtestMouseButtons, button, QEvent::MouseButtonPress,
108 stateKey, lastMouseTimestamp);
113 qtestMouseButtons.setFlag(button,
false);
115 qt_handleMouseEvent(w, pos, global, qtestMouseButtons, button, QEvent::MouseButtonRelease,
116 stateKey, lastMouseTimestamp);
122 qt_handleMouseEvent(w, pos, global, qtestMouseButtons, Qt::NoButton, QEvent::MouseMove,
123 stateKey, lastMouseTimestamp);
128 qApp->processEvents();
Q_GUI_EXPORT void qt_handleMouseEvent(QWindow *window, const QPointF &local, const QPointF &global, Qt::MouseButtons state, Qt::MouseButton button, QEvent::Type type, Qt::KeyboardModifiers mods, int timestamp)