summaryrefslogtreecommitdiffstats
path: root/tests/auto/widgets/widgets/qmdiarea/tst_qmdiarea.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'tests/auto/widgets/widgets/qmdiarea/tst_qmdiarea.cpp')
-rw-r--r--tests/auto/widgets/widgets/qmdiarea/tst_qmdiarea.cpp51
1 files changed, 20 insertions, 31 deletions
diff --git a/tests/auto/widgets/widgets/qmdiarea/tst_qmdiarea.cpp b/tests/auto/widgets/widgets/qmdiarea/tst_qmdiarea.cpp
index 6919f79711..f457955657 100644
--- a/tests/auto/widgets/widgets/qmdiarea/tst_qmdiarea.cpp
+++ b/tests/auto/widgets/widgets/qmdiarea/tst_qmdiarea.cpp
@@ -136,6 +136,22 @@ static inline QTabBar::Shape tabBarShapeFrom(QTabWidget::TabShape shape, QTabWid
return QTabBar::RoundedNorth;
}
+static int cascadedDeltaY(const QMdiArea *area)
+{
+ // Calculate the delta (dx, dy) between two cascaded subwindows.
+ const QWidget *subWindow = area->subWindowList().first();
+ const QStyle *style = subWindow->style();
+ QStyleOptionTitleBar options;
+ options.initFrom(subWindow);
+ int titleBarHeight = style->pixelMetric(QStyle::PM_TitleBarHeight, &options);
+ // ### Remove this after the QMacStyle has been fixed
+ if (style->inherits("QMacStyle"))
+ titleBarHeight -= 4;
+ const QFontMetrics fontMetrics = QFontMetrics(QApplication::font("QMdiSubWindowTitleBar"));
+ return qMax(titleBarHeight - (titleBarHeight - fontMetrics.height()) / 2, 1)
+ + style->pixelMetric(QStyle::PM_FocusFrameVMargin);
+}
+
enum Arrangement {
Tiled,
Cascaded
@@ -147,7 +163,6 @@ static bool verifyArrangement(QMdiArea *mdiArea, Arrangement arrangement, const
return false;
const QList<QMdiSubWindow *> subWindows = mdiArea->subWindowList();
- const QMdiSubWindow *const firstSubWindow = subWindows.at(0);
switch (arrangement) {
case Tiled:
@@ -179,17 +194,7 @@ static bool verifyArrangement(QMdiArea *mdiArea, Arrangement arrangement, const
}
case Cascaded:
{
- // Calculate the delta (dx, dy) between two cascaded subwindows.
- QStyleOptionTitleBar options;
- options.initFrom(firstSubWindow);
- int titleBarHeight = firstSubWindow->style()->pixelMetric(QStyle::PM_TitleBarHeight, &options);
-#ifdef Q_OS_MAC
- // ### Remove this after the mac style has been fixed
- if (firstSubWindow->style()->inherits("QMacStyle"))
- titleBarHeight -= 4;
-#endif
- const QFontMetrics fontMetrics = QFontMetrics(QApplication::font("QMdiSubWindowTitleBar"));
- const int dy = qMax(titleBarHeight - (titleBarHeight - fontMetrics.height()) / 2, 1);
+ const int dy = cascadedDeltaY(mdiArea);
const int dx = 10;
// Current activation/stacking order.
@@ -513,6 +518,8 @@ void tst_QMdiArea::subWindowActivated2()
#ifdef Q_OS_MAC
QSKIP("QTBUG-25298: This test is unstable on Mac.");
#endif
+ if (qApp->platformName().toLower() == QStringLiteral("xcb"))
+ QSKIP("QTBUG-25298: Unstable on some X11 window managers");
QTRY_COMPARE(spy.count(), 1);
QVERIFY(!mdiArea.activeSubWindow());
QCOMPARE(mdiArea.currentSubWindow(), activeSubWindow);
@@ -1006,11 +1013,6 @@ void tst_QMdiArea::activeSubWindow()
qApp->setActiveWindow(&mainWindow);
QCOMPARE(mdiArea->activeSubWindow(), subWindow);
-#if !defined(Q_OS_MAC) && !defined(Q_OS_WIN) && !defined(Q_OS_QNX)
- qApp->setActiveWindow(0);
- QVERIFY(!mdiArea->activeSubWindow());
-#endif
-
//task 202657
dockWidgetLineEdit->setFocus();
qApp->setActiveWindow(&mainWindow);
@@ -1086,12 +1088,6 @@ void tst_QMdiArea::currentSubWindow()
qApp->sendEvent(active, &windowActivate);
QVERIFY(mdiArea.activeSubWindow());
QVERIFY(mdiArea.currentSubWindow());
-
-#if !defined(Q_OS_MAC) && !defined(Q_OS_WIN) && !defined(Q_OS_QNX)
- qApp->setActiveWindow(0);
- QVERIFY(!mdiArea.activeSubWindow());
- QVERIFY(mdiArea.currentSubWindow());
-#endif
}
void tst_QMdiArea::addAndRemoveWindows()
@@ -1790,14 +1786,7 @@ void tst_QMdiArea::cascadeAndTileSubWindows()
qApp->processEvents();
// Check dy between two cascaded windows
- QStyleOptionTitleBar options;
- options.initFrom(windows.at(1));
- int titleBarHeight = windows.at(1)->style()->pixelMetric(QStyle::PM_TitleBarHeight, &options);
- // ### Remove this after the mac style has been fixed
- if (windows.at(1)->style()->inherits("QMacStyle"))
- titleBarHeight -= 4;
- const QFontMetrics fontMetrics = QFontMetrics(QApplication::font("QMdiSubWindowTitleBar"));
- const int dy = qMax(titleBarHeight - (titleBarHeight - fontMetrics.height()) / 2, 1);
+ const int dy = cascadedDeltaY(&workspace);
#ifdef Q_OS_MAC
QEXPECT_FAIL("", "QTBUG-25298", Abort);
#endif