diff options
Diffstat (limited to 'tests/auto/widgets/widgets')
-rw-r--r-- | tests/auto/widgets/widgets/qmdiarea/tst_qmdiarea.cpp | 4 | ||||
-rw-r--r-- | tests/auto/widgets/widgets/qmenubar/tst_qmenubar.cpp | 41 |
2 files changed, 39 insertions, 6 deletions
diff --git a/tests/auto/widgets/widgets/qmdiarea/tst_qmdiarea.cpp b/tests/auto/widgets/widgets/qmdiarea/tst_qmdiarea.cpp index 4bd04d6bee..ba5c461223 100644 --- a/tests/auto/widgets/widgets/qmdiarea/tst_qmdiarea.cpp +++ b/tests/auto/widgets/widgets/qmdiarea/tst_qmdiarea.cpp @@ -1733,9 +1733,9 @@ void tst_QMdiArea::tileSubWindows() QTRY_COMPARE(workspace.viewport()->rect().size(), expectedViewportSize); // Not enough space for all sub-windows to be visible -> provide scroll bars. - workspace.resize(150, 150); + workspace.resize(160, 150); qApp->processEvents(); - QTRY_COMPARE(workspace.size(), QSize(150, 150)); + QTRY_COMPARE(workspace.size(), QSize(160, 150)); // Horizontal scroll bar. QScrollBar *hBar = workspace.horizontalScrollBar(); diff --git a/tests/auto/widgets/widgets/qmenubar/tst_qmenubar.cpp b/tests/auto/widgets/widgets/qmenubar/tst_qmenubar.cpp index 2535e23ab8..3aefe26b1c 100644 --- a/tests/auto/widgets/widgets/qmenubar/tst_qmenubar.cpp +++ b/tests/auto/widgets/widgets/qmenubar/tst_qmenubar.cpp @@ -1016,6 +1016,25 @@ void tst_QMenuBar::check_shortcutPress() } #endif +class LayoutDirectionSaver +{ + Q_DISABLE_COPY(LayoutDirectionSaver) +public: + explicit LayoutDirectionSaver(Qt::LayoutDirection direction) + : m_oldDirection(qApp->layoutDirection()) + { + qApp->setLayoutDirection(direction); + } + + ~LayoutDirectionSaver() + { + qApp->setLayoutDirection(m_oldDirection); + } + +private: + const Qt::LayoutDirection m_oldDirection; +}; + // Qt/Mac,WinCE does not use the native popups/menubar #if !defined(Q_OS_MAC) && !defined(Q_OS_WINCE) void tst_QMenuBar::check_menuPosition() @@ -1070,10 +1089,9 @@ void tst_QMenuBar::check_menuPosition() menu.close(); } - //in RTL, the menu should be stuck at the right of the action geometry + // QTBUG-2596: in RTL, the menu should be stuck at the right of the action geometry { - Qt::LayoutDirection dir = qApp->layoutDirection(); - qApp->setLayoutDirection(Qt::RightToLeft); + LayoutDirectionSaver directionSaver(Qt::RightToLeft); menu.clear(); QObject::connect(&menu, SIGNAL(aboutToShow()), &menu, SLOT(addActions())); QRect mbItemRect = mw->menuBar()->actionGeometry(menu_action); @@ -1082,8 +1100,23 @@ void tst_QMenuBar::check_menuPosition() QVERIFY(menu.isActiveWindow()); QCOMPARE(menu.geometry().right(), mbItemRect.right()); menu.close(); - qApp->setLayoutDirection(dir); } + +# ifndef QTEST_NO_CURSOR + // QTBUG-28031: Click at bottom-right corner. + { + mw->move(400, 200); + LayoutDirectionSaver directionSaver(Qt::RightToLeft); + QMenuBar *mb = mw->menuBar(); + const QPoint localPos = mb->actionGeometry(menu.menuAction()).bottomRight() - QPoint(1, 1); + const QPoint globalPos = mb->mapToGlobal(localPos); + QCursor::setPos(globalPos); + QTest::mouseClick(mb, Qt::LeftButton, 0, localPos); + QTRY_VERIFY(menu.isActiveWindow()); + QCOMPARE(menu.geometry().right() - 1, globalPos.x()); + menu.close(); + } +# endif // QTEST_NO_CURSOR } #endif |