diff options
author | Friedemann Kleint <Friedemann.Kleint@digia.com> | 2013-08-27 11:58:34 +0200 |
---|---|---|
committer | The Qt Project <gerrit-noreply@qt-project.org> | 2013-08-27 19:12:06 +0200 |
commit | 78d7192338e2cbba0c9b53c429d35b9437b7e1cd (patch) | |
tree | 535dc6dd33c05d48504a6fcd10ac306e1028c30c /tests | |
parent | 5bb4817142f47326a320b316cd1967ecfd501c13 (diff) |
Close menu on 2nd click on QMenuBar.
Task-number: QTBUG-32807
Change-Id: I0c3c25c6acf92bc30c1bcfc09003209b572ec777
Reviewed-by: Joerg Bornemann <joerg.bornemann@digia.com>
Diffstat (limited to 'tests')
-rw-r--r-- | tests/auto/widgets/widgets/qmenubar/tst_qmenubar.cpp | 25 |
1 files changed, 25 insertions, 0 deletions
diff --git a/tests/auto/widgets/widgets/qmenubar/tst_qmenubar.cpp b/tests/auto/widgets/widgets/qmenubar/tst_qmenubar.cpp index e7450fdd2c..174753d8be 100644 --- a/tests/auto/widgets/widgets/qmenubar/tst_qmenubar.cpp +++ b/tests/auto/widgets/widgets/qmenubar/tst_qmenubar.cpp @@ -50,6 +50,7 @@ #include <qdesktopwidget.h> #include <qaction.h> #include <qstyleoption.h> +#include <qscreen.h> #include <qobject.h> @@ -145,6 +146,7 @@ private slots: void taskQTBUG4965_escapeEaten(); #endif void taskQTBUG11823_crashwithInvisibleActions(); + void closeOnSecondClick(); protected slots: void onActivated( QAction*); @@ -1318,5 +1320,28 @@ void tst_QMenuBar::taskQTBUG11823_crashwithInvisibleActions() QCOMPARE(menubar.activeAction(), m); //the active action shouldn't have changed } +void tst_QMenuBar::closeOnSecondClick() // QTBUG-32807, menu should close on 2nd click. +{ + QMainWindow mainWindow; + mainWindow.resize(300, 200); + mainWindow.move(QGuiApplication::primaryScreen()->geometry().center() - QPoint(150, 100)); +#ifndef QT_NO_CURSOR + QCursor::setPos(mainWindow.geometry().topLeft() - QPoint(100, 0)); +#endif + QMenuBar *menuBar = mainWindow.menuBar(); + menuBar->setNativeMenuBar(false); + QMenu *fileMenu = menuBar->addMenu(QStringLiteral("closeOnSecondClick")); + fileMenu->addAction(QStringLiteral("Quit")); + mainWindow.show(); + QApplication::setActiveWindow(&mainWindow); + QVERIFY(QTest::qWaitForWindowActive(&mainWindow)); + const QPoint center = menuBar->actionGeometry(fileMenu->menuAction()).center(); + QTest::mouseMove(menuBar, center); + QTest::mouseClick(menuBar, Qt::LeftButton, 0, center); + QTRY_VERIFY(fileMenu->isVisible()); + QTest::mouseClick(menuBar, Qt::LeftButton, 0, center); + QTRY_VERIFY(!fileMenu->isVisible()); +} + QTEST_MAIN(tst_QMenuBar) #include "tst_qmenubar.moc" |