From 1762bf3394219db3a7a9cc99306f4111e6cb8492 Mon Sep 17 00:00:00 2001 From: Matthew Cattell Date: Thu, 8 Sep 2011 15:37:59 +0200 Subject: fixed mouseMove MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Change-Id: I95dd22ed3216f5ad169393f535e27b1b397c8433 Reviewed-on: http://codereview.qt-project.org/4462 Reviewed-by: Samuel Rødal --- src/testlib/qtestmouse.h | 16 +++++++++++----- 1 file changed, 11 insertions(+), 5 deletions(-) (limited to 'src/testlib') diff --git a/src/testlib/qtestmouse.h b/src/testlib/qtestmouse.h index f6b2dd2bbf..16bc0baf4f 100644 --- a/src/testlib/qtestmouse.h +++ b/src/testlib/qtestmouse.h @@ -125,12 +125,15 @@ namespace QTest } } + static void mouseEvent(MouseAction action, QWindow *window, Qt::MouseButton button, Qt::KeyboardModifiers stateKey, QPoint pos, int delay=-1) { QTEST_ASSERT(window); extern int Q_TESTLIB_EXPORT defaultMouseDelay(); + static Qt::MouseButton lastButton = Qt::NoButton; + if (delay == -1 || delay < defaultMouseDelay()) delay = defaultMouseDelay(); if (delay > 0) @@ -153,22 +156,25 @@ namespace QTest switch (action) { case MousePress: - QWindowSystemInterface::handleMouseEvent(window,pos,window->mapToGlobal(pos),Qt::LeftButton); + QWindowSystemInterface::handleMouseEvent(window,pos,window->mapToGlobal(pos),button); + lastButton = button; break; case MouseRelease: QWindowSystemInterface::handleMouseEvent(window,pos,window->mapToGlobal(pos),Qt::NoButton); + lastButton = Qt::NoButton; break; case MouseDClick: - QWindowSystemInterface::handleMouseEvent(window,pos,window->mapToGlobal(pos),Qt::LeftButton); + QWindowSystemInterface::handleMouseEvent(window,pos,window->mapToGlobal(pos),button); qWait(10); QWindowSystemInterface::handleMouseEvent(window,pos,window->mapToGlobal(pos),Qt::NoButton); qWait(20); - QWindowSystemInterface::handleMouseEvent(window,pos,window->mapToGlobal(pos),Qt::LeftButton); + QWindowSystemInterface::handleMouseEvent(window,pos,window->mapToGlobal(pos),button); qWait(10); QWindowSystemInterface::handleMouseEvent(window,pos,window->mapToGlobal(pos),Qt::NoButton); break; case MouseMove: - QCursor::setPos(window->mapToGlobal(pos)); + QWindowSystemInterface::handleMouseEvent(window,pos,window->mapToGlobal(pos),lastButton); + //QCursor::setPos(window->mapToGlobal(pos)); #ifdef QT_MAC_USE_COCOA QTest::qWait(20); #else @@ -208,7 +214,7 @@ namespace QTest inline void mouseDClick(QWindow *window, Qt::MouseButton button, Qt::KeyboardModifiers stateKey = 0, QPoint pos = QPoint(), int delay=-1) { mouseEvent(MouseDClick, window, button, stateKey, pos, delay); } - inline void mouseMove(QWindow *window, QPoint pos = QPoint(), int delay=-1) + inline void mouseMove(QWindow *window, QPoint pos = QPoint(), int delay= -1) { mouseEvent(MouseMove, window, Qt::NoButton, 0, pos, delay); } } -- cgit v1.2.3