diff options
author | Andreas Sturmlechner <asturm@gentoo.org> | 2022-01-20 12:25:24 +0100 |
---|---|---|
committer | Andreas Sturmlechner <asturm@gentoo.org> | 2022-01-20 14:24:17 +0100 |
commit | a60d9305d2a70497122ceeb0e32dc2c6ac1f9540 (patch) | |
tree | d7da7b8b015f1d60be473a3672797d2cbc274dfc /kde-frameworks/plasma | |
parent | kde-frameworks/plasma: Fix crash when screen gets disabled/enabled (diff) | |
download | gentoo-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/plasma')
-rw-r--r-- | kde-frameworks/plasma/files/plasma-5.90.0-KDEBUG-426969.patch | 90 | ||||
-rw-r--r-- | kde-frameworks/plasma/plasma-5.90.0-r1.ebuild | 1 |
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" ) |