summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAndreas Sturmlechner <asturm@gentoo.org>2022-01-20 12:25:24 +0100
committerAndreas Sturmlechner <asturm@gentoo.org>2022-01-20 14:24:17 +0100
commita60d9305d2a70497122ceeb0e32dc2c6ac1f9540 (patch)
treed7da7b8b015f1d60be473a3672797d2cbc274dfc /kde-frameworks
parentkde-frameworks/plasma: Fix crash when screen gets disabled/enabled (diff)
downloadgentoo-a60d9305d2a70497122ceeb0e32dc2c6ac1f9540.tar.gz
gentoo-a60d9305d2a70497122ceeb0e32dc2c6ac1f9540.tar.bz2
gentoo-a60d9305d2a70497122ceeb0e32dc2c6ac1f9540.zip
kde-frameworks/plasma: Always sync the setPanelBehavior to wayland
Upstream commit d40d36057a0ee9fcb4badc7ff8b56844da79dfc8 KDE-bug: https://bugs.kde.org/show_bug.cgi?id=426969 Package-Manager: Portage-3.0.30, Repoman-3.0.3 Signed-off-by: Andreas Sturmlechner <asturm@gentoo.org>
Diffstat (limited to 'kde-frameworks')
-rw-r--r--kde-frameworks/plasma/files/plasma-5.90.0-KDEBUG-426969.patch90
-rw-r--r--kde-frameworks/plasma/plasma-5.90.0-r1.ebuild1
2 files changed, 91 insertions, 0 deletions
diff --git a/kde-frameworks/plasma/files/plasma-5.90.0-KDEBUG-426969.patch b/kde-frameworks/plasma/files/plasma-5.90.0-KDEBUG-426969.patch
new file mode 100644
index 000000000000..bccc097a3b99
--- /dev/null
+++ b/kde-frameworks/plasma/files/plasma-5.90.0-KDEBUG-426969.patch
@@ -0,0 +1,90 @@
+From d40d36057a0ee9fcb4badc7ff8b56844da79dfc8 Mon Sep 17 00:00:00 2001
+From: David Edmundson <kde@davidedmundson.co.uk>
+Date: Wed, 12 Jan 2022 22:21:34 +0000
+Subject: [PATCH] Always sync the setPanelBehavior to wayland
+
+Currently this code is in the else statement to if (type !=
+Dialog::Normal) {
+
+This doesn't make sense as panel roles apply explicitly to other types,
+like Dialog::Dock. On X11 the equivalent always applies.
+
+BUG: 426969
+
+* asturm 2022-01-22: Merged with below fixup:
+
+From b882b34d7b55975f679133ef86cfd12869e8bba5 Mon Sep 17 00:00:00 2001
+From: David Edmundson <kde@davidedmundson.co.uk>
+Date: Thu, 13 Jan 2022 17:03:38 +0000
+Subject: [PATCH] Always sync the setPanelBehavior to wayland
+
+The previous patch moved some code that reapplied setRole in a way that
+caused issues.
+
+BUG: 448373
+
+--- a/src/plasmaquick/dialog.cpp
++++ b/src/plasmaquick/dialog.cpp
+@@ -693,14 +693,13 @@
+
+ void DialogPrivate::applyType()
+ {
+- if (type != Dialog::Normal) {
+ /*QXcbWindowFunctions::WmWindowType*/ int wmType = 0;
+
+ #if HAVE_X11
+ if (KWindowSystem::isPlatformX11()) {
+ switch (type) {
+ case Dialog::Normal:
+- Q_UNREACHABLE();
++ q->setFlags(Qt::FramelessWindowHint | q->flags());
+ break;
+ case Dialog::Dock:
+ wmType = QXcbWindowFunctions::WmWindowType::Dock;
+@@ -729,11 +728,15 @@
+ }
+ #endif
+
+- if (!wmType) {
++ if (!wmType && type != Dialog::Normal) {
+ KWindowSystem::setType(q->winId(), static_cast<NET::WindowType>(type));
+ }
+ #if HAVE_KWAYLAND
+ if (shellSurface) {
++ if (q->flags() & Qt::WindowStaysOnTopHint) {
++ type = Dialog::Dock;
++ shellSurface->setPanelBehavior(KWayland::Client::PlasmaShellSurface::PanelBehavior::WindowsGoBelow);
++ }
+ switch (type) {
+ case Dialog::Dock:
+ shellSurface->setRole(KWayland::Client::PlasmaShellSurface::Role::Panel);
+@@ -750,27 +753,13 @@
+ case Dialog::CriticalNotification:
+ shellSurface->setRole(KWayland::Client::PlasmaShellSurface::Role::CriticalNotification);
+ break;
++ case Dialog::Normal:
++ shellSurface->setRole(KWayland::Client::PlasmaShellSurface::Role::Normal);
+ default:
+ break;
+ }
+ }
+ #endif
+- } else {
+- q->setFlags(Qt::FramelessWindowHint | q->flags());
+-
+-#if HAVE_KWAYLAND
+- // Only possible after setup
+- if (shellSurface) {
+- if (q->flags() & Qt::WindowStaysOnTopHint) {
+- shellSurface->setRole(KWayland::Client::PlasmaShellSurface::Role::Panel);
+- shellSurface->setPanelBehavior(KWayland::Client::PlasmaShellSurface::PanelBehavior::WindowsGoBelow);
+- } else {
+- shellSurface->setRole(KWayland::Client::PlasmaShellSurface::Role::Normal);
+- shellSurface->setPanelBehavior(KWayland::Client::PlasmaShellSurface::PanelBehavior::AlwaysVisible);
+- }
+- }
+-#endif
+- }
+
+ // an OSD can't be a Dialog, as qt xcb would attempt to set a transient parent for it
+ // see bug 370433
diff --git a/kde-frameworks/plasma/plasma-5.90.0-r1.ebuild b/kde-frameworks/plasma/plasma-5.90.0-r1.ebuild
index fa06b05e874f..a59a50636a36 100644
--- a/kde-frameworks/plasma/plasma-5.90.0-r1.ebuild
+++ b/kde-frameworks/plasma/plasma-5.90.0-r1.ebuild
@@ -60,6 +60,7 @@ DEPEND="${RDEPEND}
BDEPEND="man? ( >=kde-frameworks/kdoctools-${PVCUT}:5 )"
PATCHES=(
+ "${FILESDIR}/${P}-KDEBUG-426969.patch"
"${FILESDIR}/${P}-KDEBUG-447752.patch"
"${FILESDIR}/${P}-KDEBUG-448590.patch"
)