diff --git a/src/widgets/kernel/qwidget.cpp b/src/widgets/kernel/qwidget.cpp index baababe09ae..2734d598517 100644 --- a/src/widgets/kernel/qwidget.cpp +++ b/src/widgets/kernel/qwidget.cpp @@ -10898,10 +10898,11 @@ void QWidget::setParent(QWidget *parent, Qt::WindowFlags f) recreate = true; } if (recreate) { - auto oldState = d->windowHandle(QWidgetPrivate::WindowHandleMode::Closest)->windowState(); + const auto windowStateBeforeDestroy = newtlw->windowState(); newtlw->destroy(); newtlw->create(); - d->windowHandle(QWidgetPrivate::WindowHandleMode::Closest)->setWindowState(oldState); + Q_ASSERT(newtlw->windowHandle()); + newtlw->windowHandle()->setWindowStates(windowStateBeforeDestroy); } } }