diff --git a/src/widgets/kernel/qwidget.cpp b/src/widgets/kernel/qwidget.cpp index 2e1997be76d..671a1b407a2 100644 --- a/src/widgets/kernel/qwidget.cpp +++ b/src/widgets/kernel/qwidget.cpp @@ -10806,10 +10806,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); } } }