From 545cc8dfdff860923e54171f4605c5016d4ae06588a81ac8c3d42246135a6307 Mon Sep 17 00:00:00 2001 From: Fabian Vogt Date: Mon, 21 Aug 2023 06:12:22 +0000 Subject: [PATCH] Accepting request 1104688 from home:fusionfuture:branches:KDE:Frameworks5 - Add patch to fix crash when opening windows (kde#473432) * 0001-TriangleMouseFilter-check-intercepted-item-still-exi.patch * 0002-TriangleMouseFilter-also-check-optional-position-has.patch OBS-URL: https://build.opensuse.org/request/show/1104688 OBS-URL: https://build.opensuse.org/package/show/KDE:Frameworks5/plasma5-workspace?expand=0&rev=709 --- ...ter-check-intercepted-item-still-exi.patch | 48 +++++++++++++++++++ ...ter-also-check-optional-position-has.patch | 35 ++++++++++++++ plasma5-workspace.changes | 7 +++ plasma5-workspace.spec | 2 + 4 files changed, 92 insertions(+) create mode 100644 0001-TriangleMouseFilter-check-intercepted-item-still-exi.patch create mode 100644 0002-TriangleMouseFilter-also-check-optional-position-has.patch diff --git a/0001-TriangleMouseFilter-check-intercepted-item-still-exi.patch b/0001-TriangleMouseFilter-check-intercepted-item-still-exi.patch new file mode 100644 index 0000000..dc96023 --- /dev/null +++ b/0001-TriangleMouseFilter-check-intercepted-item-still-exi.patch @@ -0,0 +1,48 @@ +From dc146e7164a5dcb3a6ed4829398db69378111f0e Mon Sep 17 00:00:00 2001 +From: Fushan Wen +Date: Fri, 18 Aug 2023 12:20:50 +0800 +Subject: [PATCH 1/2] TriangleMouseFilter: check intercepted item still exists + in reset timer + +m_interceptedHoverItem.item can be deleted before m_interceptedHoverItem +is reset, so checking interceptedHoverEnterPosition is not enough. + +BUG: 473432 +FIXED-IN: 5.27.8 + + +(cherry picked from commit 1e8a8d6e6c338bcc66c781863222a038d7136618) +--- + components/trianglemousefilter/trianglemousefilter.cpp | 2 +- + components/trianglemousefilter/trianglemousefilter.h | 2 +- + 2 files changed, 2 insertions(+), 2 deletions(-) + +diff --git a/components/trianglemousefilter/trianglemousefilter.cpp b/components/trianglemousefilter/trianglemousefilter.cpp +index 9395f8479..8b414588b 100644 +--- a/components/trianglemousefilter/trianglemousefilter.cpp ++++ b/components/trianglemousefilter/trianglemousefilter.cpp +@@ -26,7 +26,7 @@ TriangleMouseFilter::TriangleMouseFilter(QQuickItem *parent) + + update(); + +- if (m_interceptedHoverItem.interceptedHoverEnterPosition.has_value()) { ++ if (m_interceptedHoverItem) { + resendHoverEvents(m_interceptedHoverItem.interceptedHoverEnterPosition.value()); + } + +diff --git a/components/trianglemousefilter/trianglemousefilter.h b/components/trianglemousefilter/trianglemousefilter.h +index a18556b90..086c1d62b 100644 +--- a/components/trianglemousefilter/trianglemousefilter.h ++++ b/components/trianglemousefilter/trianglemousefilter.h +@@ -29,7 +29,7 @@ struct InterceptedQuickItemData { + + explicit operator bool() const + { +- return item != nullptr; ++ return !item.isNull(); + } + }; + +-- +2.41.0 + diff --git a/0002-TriangleMouseFilter-also-check-optional-position-has.patch b/0002-TriangleMouseFilter-also-check-optional-position-has.patch new file mode 100644 index 0000000..a2316e8 --- /dev/null +++ b/0002-TriangleMouseFilter-also-check-optional-position-has.patch @@ -0,0 +1,35 @@ +From 88780c843d1dbd63d18edbeecca17fddfe24a004 Mon Sep 17 00:00:00 2001 +From: Fushan Wen +Date: Fri, 18 Aug 2023 22:29:42 +0800 +Subject: [PATCH 2/2] TriangleMouseFilter: also check optional position has + value + +If firstEnter is true, only item is set, and interceptedHoverEnterPosition +still has no value until there is another QEvent::HoverEnter event. + +Amends 1e8a8d6e6c338bcc66c781863222a038d7136618 + +CCBUG: 473432 + + +(cherry picked from commit 08c8c00bdd3811b9547360ccb23eeef3da00de54) +--- + components/trianglemousefilter/trianglemousefilter.h | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/components/trianglemousefilter/trianglemousefilter.h b/components/trianglemousefilter/trianglemousefilter.h +index 086c1d62b..b4d6662ab 100644 +--- a/components/trianglemousefilter/trianglemousefilter.h ++++ b/components/trianglemousefilter/trianglemousefilter.h +@@ -29,7 +29,7 @@ struct InterceptedQuickItemData { + + explicit operator bool() const + { +- return !item.isNull(); ++ return !item.isNull() && interceptedHoverEnterPosition.has_value(); + } + }; + +-- +2.41.0 + diff --git a/plasma5-workspace.changes b/plasma5-workspace.changes index d20a3e8..d8eaf47 100644 --- a/plasma5-workspace.changes +++ b/plasma5-workspace.changes @@ -1,3 +1,10 @@ +------------------------------------------------------------------- +Fri Aug 18 14:03:29 UTC 2023 - Fusion Future + +- Add patch to fix crash when opening windows (kde#473432) + * 0001-TriangleMouseFilter-check-intercepted-item-still-exi.patch + * 0002-TriangleMouseFilter-also-check-optional-position-has.patch + ------------------------------------------------------------------- Sun Aug 6 03:12:23 UTC 2023 - Fusion Future diff --git a/plasma5-workspace.spec b/plasma5-workspace.spec index 6ce6c26..0400f5d 100644 --- a/plasma5-workspace.spec +++ b/plasma5-workspace.spec @@ -45,6 +45,8 @@ 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 +Patch3: 0001-TriangleMouseFilter-check-intercepted-item-still-exi.patch +Patch4: 0002-TriangleMouseFilter-also-check-optional-position-has.patch # PATCHES 501-??? are PATCH-FIX-OPENSUSE Patch501: 0001-Use-qdbus-qt5.patch Patch502: 0001-Ignore-default-sddm-face-icons.patch