diff --git a/src/widgets/kernel/qrhiwidget.cpp b/src/widgets/kernel/qrhiwidget.cpp index 0382caecc7e..56a230fcb72 100644 --- a/src/widgets/kernel/qrhiwidget.cpp +++ b/src/widgets/kernel/qrhiwidget.cpp @@ -277,7 +277,7 @@ bool QRhiWidget::event(QEvent *e) { Q_D(QRhiWidget); switch (e->type()) { - case QEvent::WindowChangeInternal: + case QEvent::WindowAboutToChangeInternal: // The QRhi will almost certainly change, prevent texture() from // returning the existing QRhiTexture in the meantime. d->textureInvalid = true; diff --git a/tests/auto/widgets/widgets/qrhiwidget/tst_qrhiwidget.cpp b/tests/auto/widgets/widgets/qrhiwidget/tst_qrhiwidget.cpp index 988f736e4e6..9f56c776377 100644 --- a/tests/auto/widgets/widgets/qrhiwidget/tst_qrhiwidget.cpp +++ b/tests/auto/widgets/widgets/qrhiwidget/tst_qrhiwidget.cpp @@ -635,12 +635,19 @@ void tst_QRhiWidget::reparent() QWidget *windowOne = new QWidget; windowOne->resize(1280, 720); - SimpleRhiWidget *rhiWidget = new SimpleRhiWidget(1, windowOne); + SimpleRhiWidget *rhiWidget = new SimpleRhiWidget(1); rhiWidget->setApi(api); rhiWidget->resize(800, 600); QSignalSpy frameSpy(rhiWidget, &QRhiWidget::frameSubmitted); QSignalSpy errorSpy(rhiWidget, &QRhiWidget::renderFailed); + rhiWidget->show(); + QVERIFY(QTest::qWaitForWindowExposed(rhiWidget)); + QTRY_VERIFY(frameSpy.count() > 0); + QCOMPARE(errorSpy.count(), 0); + + frameSpy.clear(); + rhiWidget->setParent(windowOne); windowOne->show(); QVERIFY(QTest::qWaitForWindowExposed(windowOne)); QTRY_VERIFY(frameSpy.count() > 0);