summaryrefslogtreecommitdiffstats
path: root/tests
diff options
context:
space:
mode:
authorFriedemann Kleint <Friedemann.Kleint@digia.com>2014-09-24 12:14:03 +0200
committerFriedemann Kleint <Friedemann.Kleint@digia.com>2014-09-24 23:07:15 +0200
commit4b03b18548200db0ad65415c7df7a7665a9ec3d8 (patch)
treec44d136cef00d65b36a778832b416e94e4643916 /tests
parentd41d4a0a358c98cbe56838b9fbb0ac422d43b15e (diff)
Generate Show/Hide events for widgets when minimized state changes.
Fixes a regression against Qt 4, where Show/Hide events were received when the minimized state changed. It is restricted to QWidget so as not to introduce additional events to QWindow (which already has signal visibilityChanged()) and cause unexpected side effects in QQuickWindow. Task-number: QTBUG-41312 Change-Id: Ib165a5daf7a7e5d8231ef8a94b70e8a2a3253057 Reviewed-by: Marc Mutz <marc.mutz@kdab.com>
Diffstat (limited to 'tests')
-rw-r--r--tests/auto/widgets/kernel/qwidget/tst_qwidget.cpp24
1 files changed, 24 insertions, 0 deletions
diff --git a/tests/auto/widgets/kernel/qwidget/tst_qwidget.cpp b/tests/auto/widgets/kernel/qwidget/tst_qwidget.cpp
index 0de006a041..34bb4cfdf6 100644
--- a/tests/auto/widgets/kernel/qwidget/tst_qwidget.cpp
+++ b/tests/auto/widgets/kernel/qwidget/tst_qwidget.cpp
@@ -272,6 +272,7 @@ private slots:
void showHideEvent_data();
void showHideEvent();
+ void showHideEventWhileMinimize();
void lostUpdatesOnHide();
@@ -4087,6 +4088,29 @@ void tst_QWidget::showHideEvent()
QCOMPARE(widget.numberOfHideEvents, expectedHideEvents);
}
+void tst_QWidget::showHideEventWhileMinimize()
+{
+ const QPlatformIntegration *pi = QGuiApplicationPrivate::platformIntegration();
+ if (!pi->hasCapability(QPlatformIntegration::MultipleWindows)
+ || !pi->hasCapability(QPlatformIntegration::NonFullScreenWindows)
+ || !pi->hasCapability(QPlatformIntegration::WindowManagement)) {
+ QSKIP("This test requires window management capabilities");
+ }
+ // QTBUG-41312, hide, show events should be received during minimized.
+ ShowHideEventWidget widget;
+ widget.setWindowTitle(__FUNCTION__);
+ widget.resize(m_testWidgetSize);
+ centerOnScreen(&widget);
+ widget.show();
+ QVERIFY(QTest::qWaitForWindowExposed(&widget));
+ const int showEventsBeforeMinimize = widget.numberOfShowEvents;
+ const int hideEventsBeforeMinimize = widget.numberOfHideEvents;
+ widget.showMinimized();
+ QTRY_COMPARE(widget.numberOfHideEvents, hideEventsBeforeMinimize + 1);
+ widget.showNormal();
+ QTRY_COMPARE(widget.numberOfShowEvents, showEventsBeforeMinimize + 1);
+}
+
void tst_QWidget::update()
{
QTest::qWait(10); // Wait for the initStuff to do it's stuff.