Gentoo Archives: gentoo-commits

From: Andreas Sturmlechner <asturm@g.o>
To: gentoo-commits@l.g.o
Subject: [gentoo-commits] repo/gentoo:master commit in: kde-plasma/breeze/, kde-plasma/breeze/files/
Date: Sat, 29 May 2021 21:19:56
Message-Id: 1622322981.79ed50f28c3c915c71608be59d6b1fd7b326d814.asturm@gentoo
1 commit: 79ed50f28c3c915c71608be59d6b1fd7b326d814
2 Author: Andreas Sturmlechner <asturm <AT> gentoo <DOT> org>
3 AuthorDate: Sat May 29 20:12:57 2021 +0000
4 Commit: Andreas Sturmlechner <asturm <AT> gentoo <DOT> org>
5 CommitDate: Sat May 29 21:16:21 2021 +0000
6 URL: https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=79ed50f2
7
8 kde-plasma/breeze: Fix splitter proxy
9
10 Upstream commit f99b7ef621c9c69544158d245699fd8104db6753
11
12 See also:
13 https://mail.kde.org/pipermail/distributions/2021-May/001012.html
14
15 KDE-bug: https://bugs.kde.org/show_bug.cgi?id=436473
16 Package-Manager: Portage-3.0.19, Repoman-3.0.3
17 Signed-off-by: Andreas Sturmlechner <asturm <AT> gentoo.org>
18
19 kde-plasma/breeze/breeze-5.21.5-r1.ebuild | 53 ++++++++++++++++++++++
20 .../files/breeze-5.21.5-fix-splitter-proxy.patch | 50 ++++++++++++++++++++
21 2 files changed, 103 insertions(+)
22
23 diff --git a/kde-plasma/breeze/breeze-5.21.5-r1.ebuild b/kde-plasma/breeze/breeze-5.21.5-r1.ebuild
24 new file mode 100644
25 index 00000000000..c87f6e948b9
26 --- /dev/null
27 +++ b/kde-plasma/breeze/breeze-5.21.5-r1.ebuild
28 @@ -0,0 +1,53 @@
29 +# Copyright 1999-2021 Gentoo Authors
30 +# Distributed under the terms of the GNU General Public License v2
31 +
32 +EAPI=7
33 +
34 +KFMIN=5.82.0
35 +PVCUT=$(ver_cut 1-3)
36 +QTMIN=5.15.2
37 +inherit ecm kde.org
38 +
39 +DESCRIPTION="Breeze visual style for the Plasma desktop"
40 +HOMEPAGE="https://invent.kde.org/plasma/breeze"
41 +
42 +LICENSE="GPL-2" # TODO: CHECK
43 +SLOT="5"
44 +KEYWORDS="~amd64 ~arm ~arm64 ~ppc64 ~x86"
45 +IUSE="X"
46 +
47 +RDEPEND="
48 + >=dev-qt/qtdbus-${QTMIN}:5
49 + >=dev-qt/qtdeclarative-${QTMIN}:5
50 + >=dev-qt/qtgui-${QTMIN}:5
51 + >=dev-qt/qtwidgets-${QTMIN}:5
52 + >=dev-qt/qtx11extras-${QTMIN}:5
53 + >=kde-frameworks/frameworkintegration-${KFMIN}:5
54 + >=kde-frameworks/kcmutils-${KFMIN}:5
55 + >=kde-frameworks/kconfig-${KFMIN}:5
56 + >=kde-frameworks/kconfigwidgets-${KFMIN}:5
57 + >=kde-frameworks/kcoreaddons-${KFMIN}:5
58 + >=kde-frameworks/kguiaddons-${KFMIN}:5
59 + >=kde-frameworks/ki18n-${KFMIN}:5
60 + >=kde-frameworks/kiconthemes-${KFMIN}:5
61 + >=kde-frameworks/kwidgetsaddons-${KFMIN}:5
62 + >=kde-frameworks/kwindowsystem-${KFMIN}:5
63 + >=kde-plasma/kdecoration-${PVCUT}:5
64 + X? ( x11-libs/libxcb )
65 +"
66 +DEPEND="${RDEPEND}
67 + >=kde-frameworks/kpackage-${KFMIN}:5
68 +"
69 +PDEPEND="
70 + >=kde-frameworks/breeze-icons-${KFMIN}:5
71 + >=kde-plasma/kde-cli-tools-${PVCUT}:5
72 +"
73 +
74 +PATCHES=( "${FILESDIR}/${P}-fix-splitter-proxy.patch" )
75 +
76 +src_configure() {
77 + local mycmakeargs=(
78 + $(cmake_use_find_package X XCB)
79 + )
80 + ecm_src_configure
81 +}
82
83 diff --git a/kde-plasma/breeze/files/breeze-5.21.5-fix-splitter-proxy.patch b/kde-plasma/breeze/files/breeze-5.21.5-fix-splitter-proxy.patch
84 new file mode 100644
85 index 00000000000..52646721a4b
86 --- /dev/null
87 +++ b/kde-plasma/breeze/files/breeze-5.21.5-fix-splitter-proxy.patch
88 @@ -0,0 +1,50 @@
89 +From f99b7ef621c9c69544158d245699fd8104db6753 Mon Sep 17 00:00:00 2001
90 +From: Fabian Vogt <fabian@×××××××××××.de>
91 +Date: Sat, 15 May 2021 17:45:54 +0200
92 +Subject: [PATCH] Fix informing the underlying widget when leaving
93 + SplitterProxy
94 +
95 +While the SplitterProxy is active, it intercepts all relevant events, so that
96 +the underlying widget still thinks it's in the same "on splitter" state. When
97 +the SplitterProxy is left, the underlying widget is sent a HoverLeave/HoverMove
98 +event to make it aware of the new current cursor position. Without this, it
99 +doesn't know that it's not supposed to be in the "on splitter" state, and when
100 +it regains focus it just re-activates the SplitterProxy at the current cursor
101 +position.
102 +
103 +This was broken by accident in d201a1f187 ("Fix SplitterProxy not clearing
104 +when above another QSplitterHandle"), which moved the hide() call past the
105 +call to QCoreApplication::sendEvent. Previously that made isVisible() false,
106 +which also prevented the interception of the HoverLeave/HoverMove events.
107 +
108 +BUG: 436473
109 +---
110 + kstyle/breezesplitterproxy.cpp | 11 +++++++----
111 + 1 file changed, 7 insertions(+), 4 deletions(-)
112 +
113 +diff --git a/kstyle/breezesplitterproxy.cpp b/kstyle/breezesplitterproxy.cpp
114 +index 0cf5685f..d4db407b 100644
115 +--- a/kstyle/breezesplitterproxy.cpp
116 ++++ b/kstyle/breezesplitterproxy.cpp
117 +@@ -341,11 +341,14 @@ namespace Breeze
118 + // send hover event
119 + if( _splitter )
120 + {
121 +- QHoverEvent hoverEvent(
122 +- qobject_cast<QSplitterHandle*>(_splitter.data()) ? QEvent::HoverLeave : QEvent::HoverMove,
123 +- _splitter.data()->mapFromGlobal(QCursor::pos()), _hook);
124 +- QCoreApplication::sendEvent( _splitter.data(), &hoverEvent );
125 ++ // SplitterProxy intercepts HoverLeave/HoverMove events to _splitter,
126 ++ // but this is meant to reach it directly. Unset _splitter to stop interception.
127 ++ auto splitter = _splitter;
128 + _splitter.clear();
129 ++ QHoverEvent hoverEvent(
130 ++ qobject_cast<QSplitterHandle*>(splitter.data()) ? QEvent::HoverLeave : QEvent::HoverMove,
131 ++ splitter.data()->mapFromGlobal(QCursor::pos()), _hook);
132 ++ QCoreApplication::sendEvent( splitter.data(), &hoverEvent );
133 + }
134 +
135 + // kill timer if any
136 +--
137 +GitLab
138 +