summaryrefslogtreecommitdiffstats
path: root/tests/auto/widgets/kernel/qwidget_window/tst_qwidget_window.cpp
diff options
context:
space:
mode:
authorFriedemann Kleint <Friedemann.Kleint@digia.com>2013-10-28 14:11:50 +0100
committerThe Qt Project <gerrit-noreply@qt-project.org>2013-11-20 09:39:56 +0100
commit829b1d13b225e87b8a385397e2b53c7a9f8cda9e (patch)
tree50d536be8782ae02c70c0dd72ea81dc361cf2881 /tests/auto/widgets/kernel/qwidget_window/tst_qwidget_window.cpp
parent558b0a24d6a7b9a12fd5e970be2a6743eae2cafc (diff)
Ensure Qt::WA_Mapped is set in case of obscured native windows.
Task-number: QTBUG-33520 Change-Id: I51f9b4634be29fd32f4ad9cc8b5d3e10b19ea2f5 Reviewed-by: Oliver Wolff <oliver.wolff@digia.com> Reviewed-by: Joerg Bornemann <joerg.bornemann@digia.com> Reviewed-by: Gunnar Sletta <gunnar.sletta@digia.com>
Diffstat (limited to 'tests/auto/widgets/kernel/qwidget_window/tst_qwidget_window.cpp')
-rw-r--r--tests/auto/widgets/kernel/qwidget_window/tst_qwidget_window.cpp28
1 files changed, 28 insertions, 0 deletions
diff --git a/tests/auto/widgets/kernel/qwidget_window/tst_qwidget_window.cpp b/tests/auto/widgets/kernel/qwidget_window/tst_qwidget_window.cpp
index 1bbbfd610e..f5585c583a 100644
--- a/tests/auto/widgets/kernel/qwidget_window/tst_qwidget_window.cpp
+++ b/tests/auto/widgets/kernel/qwidget_window/tst_qwidget_window.cpp
@@ -91,6 +91,8 @@ private slots:
void tst_showWithoutActivating();
void tst_paintEventOnSecondShow();
+ void obscuredNativeMapped();
+
#ifndef QT_NO_DRAGANDDROP
void tst_dnd();
#endif
@@ -368,6 +370,32 @@ void tst_QWidget_window::tst_paintEventOnSecondShow()
QTRY_VERIFY(w.paintEventReceived);
}
+// QTBUG-33520, a toplevel fully obscured by native children should still receive Qt::WA_Mapped
+void tst_QWidget_window::obscuredNativeMapped()
+{
+ enum { size = 200 };
+
+ QWidget topLevel;
+ topLevel.setWindowFlags(Qt::FramelessWindowHint);
+ QWidget *child = new QWidget(&topLevel);
+ child->resize(size, size);
+ topLevel.resize(size, size);
+ topLevel.move(QGuiApplication::primaryScreen()->availableGeometry().center() - QPoint(size /2 , size / 2));
+ child->winId();
+ topLevel.show();
+ QTRY_VERIFY(topLevel.testAttribute(Qt::WA_Mapped));
+#if defined(Q_OS_MAC)
+ QSKIP("This test fails on Mac."); // Minimized windows are not unmapped for some reason.
+#elif defined(Q_OS_UNIX)
+ if (qgetenv("XDG_CURRENT_DESKTOP").contains("Unity"))
+ QSKIP("This test fails on Unity."); // Minimized windows are not unmapped for some reason.
+#endif // Q_OS_UNIX
+ topLevel.setWindowState(Qt::WindowMinimized);
+ QTRY_VERIFY(!topLevel.testAttribute(Qt::WA_Mapped));
+ topLevel.setWindowState(Qt::WindowNoState);
+ QTRY_VERIFY(topLevel.testAttribute(Qt::WA_Mapped));
+}
+
#ifndef QT_NO_DRAGANDDROP
/* DnD test for QWidgetWindow (handleDrag*Event() functions).