summaryrefslogtreecommitdiffstats
path: root/tests/auto/widgets
diff options
context:
space:
mode:
Diffstat (limited to 'tests/auto/widgets')
-rw-r--r--tests/auto/widgets/kernel/qwidget/tst_qwidget.cpp21
-rw-r--r--tests/auto/widgets/widgets/qopenglwidget/tst_qopenglwidget.cpp10
2 files changed, 31 insertions, 0 deletions
diff --git a/tests/auto/widgets/kernel/qwidget/tst_qwidget.cpp b/tests/auto/widgets/kernel/qwidget/tst_qwidget.cpp
index 1ec296211f..6e304f2152 100644
--- a/tests/auto/widgets/kernel/qwidget/tst_qwidget.cpp
+++ b/tests/auto/widgets/kernel/qwidget/tst_qwidget.cpp
@@ -5685,6 +5685,16 @@ void tst_QWidget::moveChild()
parent.showNormal();
QVERIFY(QTest::qWaitForWindowExposed(&parent));
+ if (QGuiApplicationPrivate::platformIntegration()->hasCapability(QPlatformIntegration::WindowActivation)) {
+ // On some platforms (macOS), the palette will be different depending on if a
+ // window is active or not. And because of that, the whole window will be
+ // repainted when going from Inactive to Active. So wait for the window to be
+ // active before we continue, so the activation doesn't happen at a random
+ // time below. And call processEvents to have the paint events delivered right away.
+ QVERIFY(QTest::qWaitForWindowActive(&parent));
+ qApp->processEvents();
+ }
+
QTRY_COMPARE(parent.r, QRegion(parent.rect()) - child.geometry());
QTRY_COMPARE(child.r, QRegion(child.rect()));
@@ -8029,6 +8039,17 @@ void tst_QWidget::hideOpaqueChildWhileHidden()
w.show();
QVERIFY(QTest::qWaitForWindowExposed(&w));
+
+ if (QGuiApplicationPrivate::platformIntegration()->hasCapability(QPlatformIntegration::WindowActivation)) {
+ // On some platforms (macOS), the palette will be different depending on if a
+ // window is active or not. And because of that, the whole window will be
+ // repainted when going from Inactive to Active. So wait for the window to be
+ // active before we continue, so the activation doesn't happen at a random
+ // time below. And call processEvents to have the paint events delivered right away.
+ QVERIFY(QTest::qWaitForWindowActive(&w));
+ qApp->processEvents();
+ }
+
QTRY_COMPARE(child2.r, QRegion(child2.rect()));
child.r = QRegion();
child2.r = QRegion();
diff --git a/tests/auto/widgets/widgets/qopenglwidget/tst_qopenglwidget.cpp b/tests/auto/widgets/widgets/qopenglwidget/tst_qopenglwidget.cpp
index ccd8d0ec05..099a099c13 100644
--- a/tests/auto/widgets/widgets/qopenglwidget/tst_qopenglwidget.cpp
+++ b/tests/auto/widgets/widgets/qopenglwidget/tst_qopenglwidget.cpp
@@ -364,6 +364,16 @@ void tst_QOpenGLWidget::asViewport()
widget.show();
QVERIFY(QTest::qWaitForWindowExposed(&widget));
+ if (QGuiApplicationPrivate::platformIntegration()->hasCapability(QPlatformIntegration::WindowActivation)) {
+ // On some platforms (macOS), the palette will be different depending on if a
+ // window is active or not. And because of that, the whole window will be
+ // repainted when going from Inactive to Active. So wait for the window to be
+ // active before we continue, so the activation doesn't happen at a random
+ // time below. And call processEvents to have the paint events delivered right away.
+ QVERIFY(QTest::qWaitForWindowActive(&widget));
+ qApp->processEvents();
+ }
+
QVERIFY(view->paintCount() > 0);
view->resetPaintCount();