summaryrefslogtreecommitdiffstats
path: root/tests/auto/widgets/kernel
diff options
context:
space:
mode:
authorUlf Hermann <ulf.hermann@qt.io>2019-12-03 06:55:21 +0100
committerLiang Qi <liang.qi@qt.io>2019-12-03 06:57:05 +0100
commite62d04b933a91c2bdd347aa97dc15ba210a04d2a (patch)
tree67c67af5f59d9b71522738da8a8d2d803e3ff44f /tests/auto/widgets/kernel
parentf81f21151d30a37f955aa4af2398a96507626b15 (diff)
parent9ac156c90b92a981f70929e081c64083b14e9a57 (diff)
Merge remote-tracking branch 'origin/5.14' into 5.15
Conflicts: src/corelib/serialization/qcborvalue.cpp Change-Id: I675a3029955c96e81a33ed9d98b72b55b6784b52
Diffstat (limited to 'tests/auto/widgets/kernel')
-rw-r--r--tests/auto/widgets/kernel/qwidget/tst_qwidget.cpp34
1 files changed, 34 insertions, 0 deletions
diff --git a/tests/auto/widgets/kernel/qwidget/tst_qwidget.cpp b/tests/auto/widgets/kernel/qwidget/tst_qwidget.cpp
index 07f84595fd..6f8fd5dcbe 100644
--- a/tests/auto/widgets/kernel/qwidget/tst_qwidget.cpp
+++ b/tests/auto/widgets/kernel/qwidget/tst_qwidget.cpp
@@ -53,6 +53,7 @@
#include <qmainwindow.h>
#include <qdockwidget.h>
#include <qrandom.h>
+#include <qstylehints.h>
#include <qtoolbar.h>
#include <qtoolbutton.h>
#include <QtCore/qoperatingsystemversion.h>
@@ -198,6 +199,7 @@ private slots:
void hideWhenFocusWidgetIsChild();
void normalGeometry();
void setGeometry();
+ void setGeometryHidden();
void windowOpacity();
void raise();
void lower();
@@ -2946,6 +2948,38 @@ void tst_QWidget::setGeometry()
QCOMPARE(tlw.geometry(), tr);
}
+void tst_QWidget::setGeometryHidden()
+{
+ if (QGuiApplication::styleHints()->showIsMaximized())
+ QSKIP("Platform does not support QWidget::setGeometry() - skipping");
+
+ QWidget tlw;
+ tlw.setWindowTitle(QLatin1String(QTest::currentTestFunction()));
+ QWidget child(&tlw);
+
+ const QRect tr(m_availableTopLeft + QPoint(100, 100), 2 * m_testWidgetSize);
+ const QRect cr(QPoint(50, 50), m_testWidgetSize);
+ tlw.setGeometry(tr);
+ child.setGeometry(cr);
+ tlw.showNormal();
+
+ tlw.hide();
+ QTRY_VERIFY(tlw.isHidden());
+ tlw.setGeometry(cr);
+ QVERIFY(tlw.testAttribute(Qt::WA_PendingMoveEvent));
+ QVERIFY(tlw.testAttribute(Qt::WA_PendingResizeEvent));
+ QImage img(tlw.size(), QImage::Format_ARGB32); // just needed to call QWidget::render()
+ tlw.render(&img);
+ QVERIFY(!tlw.testAttribute(Qt::WA_PendingMoveEvent));
+ QVERIFY(!tlw.testAttribute(Qt::WA_PendingResizeEvent));
+ tlw.setGeometry(cr);
+ QVERIFY(!tlw.testAttribute(Qt::WA_PendingMoveEvent));
+ QVERIFY(!tlw.testAttribute(Qt::WA_PendingResizeEvent));
+ tlw.resize(cr.size());
+ QVERIFY(!tlw.testAttribute(Qt::WA_PendingMoveEvent));
+ QVERIFY(!tlw.testAttribute(Qt::WA_PendingResizeEvent));
+}
+
void tst_QWidget::windowOpacity()
{
QWidget widget;