Package: release.debian.org Severity: normal User: release.debian....@packages.debian.org Usertags: unblock X-Debbugs-Cc: debian-...@lists.debian.org
Please unblock package breeze This release cherry-picks a fix for KDE bug 431921 [1] where splitter handles could interfer with each other, creating black boxes and stop reacting to interaction. The commit has been pushed by upstream into - KDE Plasma 5.18 LTS [2] - KDE Plasma 5.21 (for the next release) [3] The current Debian release will apply the patch to the version in Debian, 5.20.5 which is affected in the same way. [ Reason ] Fix for upstream bug that has been fixed in LTS versions and current version. [ Impact ] GUI glitches and interaction problems. [ Tests ] Install and run tests, tried to reproduce it. [ Risks ] The only change is that three lines of code have been moved down a few lines to make sure that the splitter data is correctly setup. [ Checklist ] [x] all changes are documented in the d/changelog [x] I reviewed all changes and I approve them [x] attach debdiff against the package in testing [1] https://bugs.kde.org/show_bug.cgi?id=431921 [2] https://invent.kde.org/plasma/breeze/commit/cc613558bae7c809e36951da89db3c7cc1a5a58e [3] https://invent.kde.org/plasma/breeze/commit/6c3a46e0f1abb697fb0900f21196cafcbd8ee37c unblock breeze/4:5.20.5-3 Thanks Norbert -- PREINING Norbert https://www.preining.info Fujitsu + IFMGA Guide + TU Wien + TeX Live + Debian Dev GPG: 0x860CDC13 fp: F7D8 A928 26E3 16A1 9FA0 ACF0 6CAC A448 860C DC13
diff -Nru breeze-5.20.5/debian/changelog breeze-5.20.5/debian/changelog --- breeze-5.20.5/debian/changelog 2021-01-13 07:39:50.000000000 +0900 +++ breeze-5.20.5/debian/changelog 2021-04-12 09:50:56.000000000 +0900 @@ -1,3 +1,10 @@ +breeze (4:5.20.5-3) unstable; urgency=medium + + [ Norbert Preining ] + * Cherry-pick upstream fix for KDE bug 431921. + + -- Norbert Preining <norb...@preining.info> Mon, 12 Apr 2021 09:50:56 +0900 + breeze (4:5.20.5-2) unstable; urgency=medium * Fix disappearing wallpaper (from irc, patch provided by Rik Mills). diff -Nru breeze-5.20.5/debian/patches/series breeze-5.20.5/debian/patches/series --- breeze-5.20.5/debian/patches/series 2021-01-12 18:34:00.000000000 +0900 +++ breeze-5.20.5/debian/patches/series 2021-04-12 09:49:08.000000000 +0900 @@ -1 +1,2 @@ fix-wallpaper-loss-on-breeze-change +upstream-d201a1f1-fix-splitterproxy-not-clearing.patch diff -Nru breeze-5.20.5/debian/patches/upstream-d201a1f1-fix-splitterproxy-not-clearing.patch breeze-5.20.5/debian/patches/upstream-d201a1f1-fix-splitterproxy-not-clearing.patch --- breeze-5.20.5/debian/patches/upstream-d201a1f1-fix-splitterproxy-not-clearing.patch 1970-01-01 09:00:00.000000000 +0900 +++ breeze-5.20.5/debian/patches/upstream-d201a1f1-fix-splitterproxy-not-clearing.patch 2021-04-12 09:47:08.000000000 +0900 @@ -0,0 +1,57 @@ +From d201a1f187243da677f8fa6e94325c41c3b9007c Mon Sep 17 00:00:00 2001 +From: Fabian Vogt <fab...@ritter-vogt.de> +Date: Fri, 9 Apr 2021 11:17:28 +0200 +Subject: [PATCH] Fix SplitterProxy not clearing when above another + QSplitterHandle + +When two SplitterHandles are next to each other, like at the intersection of a +horizontal and vertical splitter (|-), then it's possible that hiding the proxy +of one of those handles causes the other handle to gain focus immediately, +which activates the SplitterProxy again. Before this patch, it would then +continue clearing after reenabling itself, leading to an inconsistent state. + +BUG: 431921 +--- + kstyle/breezesplitterproxy.cpp | 12 ++++++------ + 1 file changed, 6 insertions(+), 6 deletions(-) + +diff --git a/kstyle/breezesplitterproxy.cpp b/kstyle/breezesplitterproxy.cpp +index 19adbcab..0cf5685f 100644 +--- a/kstyle/breezesplitterproxy.cpp ++++ b/kstyle/breezesplitterproxy.cpp +@@ -338,11 +338,6 @@ namespace Breeze + // release mouse + if( mouseGrabber() == this ) releaseMouse(); + +- // hide +- parentWidget()->setUpdatesEnabled(false); +- hide(); +- parentWidget()->setUpdatesEnabled(true); +- + // send hover event + if( _splitter ) + { +@@ -351,7 +346,6 @@ namespace Breeze + _splitter.data()->mapFromGlobal(QCursor::pos()), _hook); + QCoreApplication::sendEvent( _splitter.data(), &hoverEvent ); + _splitter.clear(); +- + } + + // kill timer if any +@@ -361,6 +355,12 @@ namespace Breeze + _timerId = 0; + } + ++ // hide ++ parentWidget()->setUpdatesEnabled(false); ++ // Note: This sends a synthetic mouse event to the widget below (to get focus), which might be ++ // another SplitterHandle, therefore enabling this SplitterProxy again! ++ hide(); ++ parentWidget()->setUpdatesEnabled(true); + } + + } +-- +GitLab +