--- Begin Message ---
Package: release.debian.org
Severity: normal
User: release.debian.org@packages.debian.org
Usertags: unblock
X-Debbugs-Cc: debian-kde@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 <norbert@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 <fabian@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
+
--- End Message ---