summaryrefslogtreecommitdiffstats
path: root/src/widgets/kernel/qwidget.cpp
diff options
context:
space:
mode:
authorWladimir Leuschner <wladimir.leuschner@qt.io>2023-11-06 16:19:57 +0100
committerWladimir Leuschner <wladimir.leuschner@qt.io>2023-11-06 20:50:44 +0100
commitc88211d1e4ac12eb2ae4990703a4f73c7085d624 (patch)
treebf7497a89000ffa2cc725e91a3f9978c07038d51 /src/widgets/kernel/qwidget.cpp
parentb23a06e039f9c98a2fb524a08a75b3d39bf67aaf (diff)
Restore WindowState when changing SurfaceType
Restore the WindowState, when a Window has to be recreated due to changed SurfaceType. Fixes: QTBUG-118194 Pick-to: 6.6 6.5 Change-Id: I40ba552cda9dfc8ab543611595c068f80b8fa1d6 Reviewed-by: Laszlo Agocs <laszlo.agocs@qt.io>
Diffstat (limited to 'src/widgets/kernel/qwidget.cpp')
-rw-r--r--src/widgets/kernel/qwidget.cpp2
1 files changed, 2 insertions, 0 deletions
diff --git a/src/widgets/kernel/qwidget.cpp b/src/widgets/kernel/qwidget.cpp
index fc8dec1ca7a..afa94ac54fb 100644
--- a/src/widgets/kernel/qwidget.cpp
+++ b/src/widgets/kernel/qwidget.cpp
@@ -10866,8 +10866,10 @@ void QWidget::setParent(QWidget *parent, Qt::WindowFlags f)
recreate = true;
}
if (recreate) {
+ auto oldState = d->windowHandle(QWidgetPrivate::WindowHandleMode::Closest)->windowState();
newtlw->destroy();
newtlw->create();
+ d->windowHandle(QWidgetPrivate::WindowHandleMode::Closest)->setWindowState(oldState);
}
}
}