From b1def1a15b541559e62f8334d05d79ef56745a38ca32c1801819f7299a518624 Mon Sep 17 00:00:00 2001 From: Fabian Vogt Date: Sun, 6 Aug 2023 10:05:52 +0000 Subject: [PATCH] Accepting request 1102522 from home:fusionfuture:branches:KDE:Frameworks5 - Add patch to fix crash when closing popup on Wayland (kde#473054) * 0001-shell-avoid-potential-crash-when-previous-window-is-.patch OBS-URL: https://build.opensuse.org/request/show/1102522 OBS-URL: https://build.opensuse.org/package/show/KDE:Frameworks5/plasma5-workspace?expand=0&rev=707 --- ...ntial-crash-when-previous-window-is-.patch | 37 +++++++++++++++++++ plasma5-workspace.changes | 6 +++ plasma5-workspace.spec | 1 + 3 files changed, 44 insertions(+) create mode 100644 0001-shell-avoid-potential-crash-when-previous-window-is-.patch diff --git a/0001-shell-avoid-potential-crash-when-previous-window-is-.patch b/0001-shell-avoid-potential-crash-when-previous-window-is-.patch new file mode 100644 index 0000000..11158e8 --- /dev/null +++ b/0001-shell-avoid-potential-crash-when-previous-window-is-.patch @@ -0,0 +1,37 @@ +From fc01a7f837d06ee9e92d02f13acb79c2b06e9e3c Mon Sep 17 00:00:00 2001 +From: Fushan Wen +Date: Fri, 4 Aug 2023 12:40:17 +0800 +Subject: [PATCH] shell: avoid potential crash when previous window is gone + before returning focus + +m_previousPlasmaWindow is bound to a window, and if a window is closed +before `restorePreviousWindow` is called, there will be a crash. Use +QPointer to track the window destruction. +--- + shell/shellcorona.h | 3 ++- + 1 file changed, 2 insertions(+), 1 deletion(-) + +diff --git a/shell/shellcorona.h b/shell/shellcorona.h +index a3aff351a..db218d16e 100644 +--- a/shell/shellcorona.h ++++ b/shell/shellcorona.h +@@ -14,6 +14,7 @@ + + #include + #include ++#include + #include + #include + +@@ -301,7 +302,7 @@ private: + KWayland::Client::PlasmaShell *m_waylandPlasmaShell; + // For getting the active window on Wayland + KWayland::Client::PlasmaWindowManagement *m_waylandWindowManagement = nullptr; +- KWayland::Client::PlasmaWindow *m_previousPlasmaWindow = nullptr; ++ QPointer m_previousPlasmaWindow; + bool m_closingDown : 1; + bool m_screenReorderInProgress = false; + QString m_testModeLayout; +-- +2.41.0.windows.3 + diff --git a/plasma5-workspace.changes b/plasma5-workspace.changes index 0edfe10..d20a3e8 100644 --- a/plasma5-workspace.changes +++ b/plasma5-workspace.changes @@ -1,3 +1,9 @@ +------------------------------------------------------------------- +Sun Aug 6 03:12:23 UTC 2023 - Fusion Future + +- Add patch to fix crash when closing popup on Wayland (kde#473054) + * 0001-shell-avoid-potential-crash-when-previous-window-is-.patch + ------------------------------------------------------------------- Tue Aug 1 20:07:29 UTC 2023 - Fabian Vogt diff --git a/plasma5-workspace.spec b/plasma5-workspace.spec index 5498ed0..6ce6c26 100644 --- a/plasma5-workspace.spec +++ b/plasma5-workspace.spec @@ -44,6 +44,7 @@ Source2: plasma.keyring Source3: xprop-kde-full-session.desktop # PATCH-FIX-UPSTREAM Patch1: 0001-OSD-Fix-size-calculation-for-progress-value.patch +Patch2: 0001-shell-avoid-potential-crash-when-previous-window-is-.patch # PATCHES 501-??? are PATCH-FIX-OPENSUSE Patch501: 0001-Use-qdbus-qt5.patch Patch502: 0001-Ignore-default-sddm-face-icons.patch