diff options
author | Andreas Sturmlechner <asturm@gentoo.org> | 2021-12-10 13:51:05 +0100 |
---|---|---|
committer | Andreas Sturmlechner <asturm@gentoo.org> | 2021-12-10 14:19:02 +0100 |
commit | 7e09ceab8329a85fe65c439afb94d85f68c8d53e (patch) | |
tree | d84b2fd52e1bfda92ce2e269fec60ff34b0750b6 /dev-qt/qtwayland | |
parent | dev-qt/qtwayland: 5.15.2-r16 version bump at KDE eb422ab5 (diff) | |
download | gentoo-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.patch | 36 | ||||
-rw-r--r-- | dev-qt/qtwayland/qtwayland-5.15.2-r16.ebuild | 4 |
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=( -- |