summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorIonen Wolkens <ionen@gentoo.org>2024-08-24 04:26:39 -0400
committerIonen Wolkens <ionen@gentoo.org>2024-08-24 04:54:00 -0400
commit05e731ced719c201d0107c461e66dc77a6b94063 (patch)
tree5bb4dbcdf854d32f906f0333d7ee87d0a87c5581
parentdev-python/setuptools-rust: Stabilize 1.10.1 x86, #938417 (diff)
downloadgentoo-05e731ced719c201d0107c461e66dc77a6b94063.tar.gz
gentoo-05e731ced719c201d0107c461e66dc77a6b94063.tar.bz2
gentoo-05e731ced719c201d0107c461e66dc77a6b94063.zip
dev-qt/qtbase: backport fix for QWindowPrivate plasma crashes
Assuming the date given by Qt is not a typo, still over a month to go before 6.7.3 releases (if at all) so can't count on it. Straight to stable given seems safe and is only a 1 line change, does not feel worth re-stabilizing over. Signed-off-by: Ionen Wolkens <ionen@gentoo.org>
-rw-r--r--dev-qt/qtbase/files/qtbase-6.7.2-qwindowprivate-crash.patch28
-rw-r--r--dev-qt/qtbase/qtbase-6.7.2-r3.ebuild (renamed from dev-qt/qtbase/qtbase-6.7.2-r2.ebuild)1
2 files changed, 29 insertions, 0 deletions
diff --git a/dev-qt/qtbase/files/qtbase-6.7.2-qwindowprivate-crash.patch b/dev-qt/qtbase/files/qtbase-6.7.2-qwindowprivate-crash.patch
new file mode 100644
index 000000000000..353383921b7f
--- /dev/null
+++ b/dev-qt/qtbase/files/qtbase-6.7.2-qwindowprivate-crash.patch
@@ -0,0 +1,28 @@
+https://bugs.kde.org/show_bug.cgi?id=490791
+https://codereview.qt-project.org/c/qt/qtbase/+/584636
+From: David Edmundson <davidedmundson@kde.org>
+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.5
+Change-Id: Ia7c80549e8b3c90a75cdde745487e87ecddaca63
+Reviewed-by: Volker Hilsheimer <volker.hilsheimer@qt.io>
+(cherry picked from commit d67acf94afffde6a71498be6e30447f3acf7558e)
+Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org>
+(cherry picked from commit 6af4e5f604fff40cdb3be40099b8884362806ef4)
+--- a/src/widgets/kernel/qwidget_p.h
++++ b/src/widgets/kernel/qwidget_p.h
+@@ -110,3 +110,3 @@
+ Qt::WindowFlags savedFlags; // Save widget flags while showing fullscreen
+- QScreen *initialScreen; // Screen when passing a QDesktop[Screen]Widget as parent.
++ QPointer<QScreen> initialScreen; // Screen when passing a QDesktop[Screen]Widget as parent.
+
diff --git a/dev-qt/qtbase/qtbase-6.7.2-r2.ebuild b/dev-qt/qtbase/qtbase-6.7.2-r3.ebuild
index 68a5c8f9e4fa..ff2eb438c253 100644
--- a/dev-qt/qtbase/qtbase-6.7.2-r2.ebuild
+++ b/dev-qt/qtbase/qtbase-6.7.2-r3.ebuild
@@ -148,6 +148,7 @@ PATCHES=(
"${FILESDIR}"/${PN}-6.7.2-CVE-2024-39936.patch
"${FILESDIR}"/${PN}-6.7.2-gcc15-odr.patch
"${FILESDIR}"/${PN}-6.7.2-float16-sse2.patch
+ "${FILESDIR}"/${PN}-6.7.2-qwindowprivate-crash.patch
)
src_prepare() {