From 6af4e5f604fff40cdb3be40099b8884362806ef4 Mon Sep 17 00:00:00 2001 From: David Edmundson Date: Wed, 31 Jul 2024 11:59:14 +0100 Subject: [PATCH] QWidget: Store initialScreen as QPointer A Toplevel QWidget can hold a pointer to the screen where it will eventually show contents, before a QWidgetWindow is created which then takes precedence. The screen member of QWindows is always kept up-to-date when a screen is removed, but not the contents of a toplevel window. If a widget has setScreen called but is never shown, it has potentially dangling pointer which can cause issues in the future. Pick-to: 6.7 6.5 Change-Id: Ia7c80549e8b3c90a75cdde745487e87ecddaca63 Reviewed-by: Volker Hilsheimer (cherry picked from commit d67acf94afffde6a71498be6e30447f3acf7558e) Reviewed-by: Qt Cherry-pick Bot --- src/widgets/kernel/qwidget_p.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/widgets/kernel/qwidget_p.h b/src/widgets/kernel/qwidget_p.h index 1742999ee35..c99903ecb01 100644 --- a/src/widgets/kernel/qwidget_p.h +++ b/src/widgets/kernel/qwidget_p.h @@ -109,7 +109,7 @@ struct QTLWExtra { QRect frameStrut; QRect normalGeometry; // used by showMin/maximized/FullScreen Qt::WindowFlags savedFlags; // Save widget flags while showing fullscreen - QScreen *initialScreen; // Screen when passing a QDesktop[Screen]Widget as parent. + QPointer initialScreen; // Screen when passing a QDesktop[Screen]Widget as parent. std::vector> widgetTextures;