summaryrefslogtreecommitdiffstats
path: root/tests
diff options
context:
space:
mode:
authorFriedemann Kleint <Friedemann.Kleint@digia.com>2013-08-27 11:58:34 +0200
committerThe Qt Project <gerrit-noreply@qt-project.org>2013-08-27 19:12:06 +0200
commit78d7192338e2cbba0c9b53c429d35b9437b7e1cd (patch)
tree535dc6dd33c05d48504a6fcd10ac306e1028c30c /tests
parent5bb4817142f47326a320b316cd1967ecfd501c13 (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.cpp25
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"