diff options
Diffstat (limited to 'tests/auto/widgets/widgets/qmenu/tst_qmenu.cpp')
-rw-r--r-- | tests/auto/widgets/widgets/qmenu/tst_qmenu.cpp | 18 |
1 files changed, 10 insertions, 8 deletions
diff --git a/tests/auto/widgets/widgets/qmenu/tst_qmenu.cpp b/tests/auto/widgets/widgets/qmenu/tst_qmenu.cpp index 3b8d69c6fd..28e8ba81d6 100644 --- a/tests/auto/widgets/widgets/qmenu/tst_qmenu.cpp +++ b/tests/auto/widgets/widgets/qmenu/tst_qmenu.cpp @@ -1175,25 +1175,27 @@ void tst_QMenu::click_while_dismissing_submenu() menu.addMenu(&sub); centerOnScreen(&menu, QSize(120, 100)); menu.show(); - QSignalSpy spy(action, SIGNAL(triggered())); - QSignalSpy menuShownSpy(&sub, SIGNAL(aboutToShow())); - QSignalSpy menuHiddenSpy(&sub, SIGNAL(aboutToHide())); + QSignalSpy spy(action, &QAction::triggered); + QSignalSpy menuShownSpy(&sub, &QMenu::aboutToShow); + QSignalSpy menuHiddenSpy(&sub, &QMenu::aboutToHide); QVERIFY(QTest::qWaitForWindowExposed(&menu)); + QWindow *menuWindow = menu.windowHandle(); + QVERIFY(menuWindow); //go over the submenu, press, move and release over the top level action //this opens the submenu, move two times to emulate user interaction (d->motions > 0 in QMenu) - QTest::mouseMove(&menu, menu.rect().center() + QPoint(0,2)); - QTest::mouseMove(&menu, menu.rect().center() + QPoint(1,3), 60); + QTest::mouseMove(menuWindow, menu.rect().center() + QPoint(0,2)); + QTest::mouseMove(menuWindow, menu.rect().center() + QPoint(1,3), 60); QVERIFY(menuShownSpy.wait()); QVERIFY(sub.isVisible()); QVERIFY(QTest::qWaitForWindowExposed(&sub)); //press over the submenu entry - QTest::mousePress(&menu, Qt::LeftButton, 0, menu.rect().center() + QPoint(0,2), 300); + QTest::mousePress(menuWindow, Qt::LeftButton, 0, menu.rect().center() + QPoint(0,2), 300); //move over the main action - QTest::mouseMove(&menu, menu.rect().center() - QPoint(0,2)); + QTest::mouseMove(menuWindow, menu.rect().center() - QPoint(0,2)); QVERIFY(menuHiddenSpy.wait()); //the submenu must have been hidden for the bug to be triggered QVERIFY(!sub.isVisible()); - QTest::mouseRelease(&menu, Qt::LeftButton, 0, menu.rect().center() - QPoint(0,2), 300); + QTest::mouseRelease(menuWindow, Qt::LeftButton, 0, menu.rect().center() - QPoint(0,2), 300); QCOMPARE(spy.count(), 1); } #endif |