summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAndreas Sturmlechner <asturm@gentoo.org>2021-12-10 13:51:05 +0100
committerAndreas Sturmlechner <asturm@gentoo.org>2021-12-10 14:19:02 +0100
commit7e09ceab8329a85fe65c439afb94d85f68c8d53e (patch)
treed84b2fd52e1bfda92ce2e269fec60ff34b0750b6 /dev-qt/qtwayland
parentdev-qt/qtwayland: 5.15.2-r16 version bump at KDE eb422ab5 (diff)
downloadgentoo-7e09ceab8329a85fe65c439afb94d85f68c8d53e.tar.gz
gentoo-7e09ceab8329a85fe65c439afb94d85f68c8d53e.tar.bz2
gentoo-7e09ceab8329a85fe65c439afb94d85f68c8d53e.zip
dev-qt/qtwayland: Try to fix crashes on monitor disconnects
See also: https://codereview.qt-project.org/c/qt/qtwayland/+/381271 KDE-bug: https://bugs.kde.org/show_bug.cgi?id=438839#c53 Package-Manager: Portage-3.0.29, Repoman-3.0.3 Signed-off-by: Andreas Sturmlechner <asturm@gentoo.org>
Diffstat (limited to 'dev-qt/qtwayland')
-rw-r--r--dev-qt/qtwayland/files/qtwayland-5.15.2-fix-crash-when-iterating-through-outputs.patch36
-rw-r--r--dev-qt/qtwayland/qtwayland-5.15.2-r16.ebuild4
2 files changed, 40 insertions, 0 deletions
diff --git a/dev-qt/qtwayland/files/qtwayland-5.15.2-fix-crash-when-iterating-through-outputs.patch b/dev-qt/qtwayland/files/qtwayland-5.15.2-fix-crash-when-iterating-through-outputs.patch
new file mode 100644
index 000000000000..cf37737e0226
--- /dev/null
+++ b/dev-qt/qtwayland/files/qtwayland-5.15.2-fix-crash-when-iterating-through-outputs.patch
@@ -0,0 +1,36 @@
+From 46ed85a80b28d519cf5887bbdce55d1bf57886c3 Mon Sep 17 00:00:00 2001
+From: David Edmundson <davidedmundson@kde.org>
+Date: Sun, 14 Nov 2021 13:54:19 +0000
+Subject: [PATCH] Client: Avoid processing of events when showing windows
+
+The only time we want to dispatch events from the wayland socket is when
+the application is waiting for external events. Doing so at any other
+time will cause unpredictable behavior in client code.
+
+This caused a crash downstream where we had outputs get altered whilst
+itterating through outputs, which shouldn't happen.
+
+There is no benefit to flushing here, it won't make anything appear
+faster as we haven't attached the buffer yet.
+
+Change-Id: Ie13eae4012dab96a93d8810f468d1343402b8c28
+Reviewed-by: Qt CI Bot <qt_ci_bot@qt-project.org>
+Reviewed-by: Aleix Pol Gonzalez <aleixpol@kde.org>
+---
+ src/client/qwaylandwindow.cpp | 1 -
+ 1 file changed, 1 deletion(-)
+
+diff --git a/src/client/qwaylandwindow.cpp b/src/client/qwaylandwindow.cpp
+index 635c92a08..b0d1c0d1c 100644
+--- a/src/client/qwaylandwindow.cpp
++++ b/src/client/qwaylandwindow.cpp
+@@ -477,7 +477,6 @@ void QWaylandWindow::setVisible(bool visible)
+ if (window()->type() == Qt::Popup || window()->type() == Qt::ToolTip)
+ activePopups << this;
+ initWindow();
+- mDisplay->flushRequests();
+
+ setGeometry(windowGeometry());
+ // Don't flush the events here, or else the newly visible window may start drawing, but since
+--
+2.16.3
diff --git a/dev-qt/qtwayland/qtwayland-5.15.2-r16.ebuild b/dev-qt/qtwayland/qtwayland-5.15.2-r16.ebuild
index 528a0d8a1745..60bd8391f0d6 100644
--- a/dev-qt/qtwayland/qtwayland-5.15.2-r16.ebuild
+++ b/dev-qt/qtwayland/qtwayland-5.15.2-r16.ebuild
@@ -33,6 +33,10 @@ BDEPEND="
dev-util/wayland-scanner
"
+PATCHES=(
+ "${FILESDIR}"/${P}-fix-crash-when-iterating-through-outputs.patch # KDE-bug 438839
+)
+
src_configure() {
local myqmakeargs=(
--