[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Bug#986786: unblock: breeze/4:5.20.5-3



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
+

Reply to: