summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAndreas Sturmlechner <asturm@gentoo.org>2022-09-24 21:34:11 +0200
committerAndreas Sturmlechner <asturm@gentoo.org>2022-09-24 22:39:38 +0200
commitf56997f551acc1a3adc6da6c7271060379fce56f (patch)
tree7063ace90ce64c802e2c33fa368ad1dd93a131aa
parentapp-admin/vault: drop 1.10.5, 1.11.1, 1.11.2 (diff)
downloadgentoo-f56997f551acc1a3adc6da6c7271060379fce56f.tar.gz
gentoo-f56997f551acc1a3adc6da6c7271060379fce56f.tar.bz2
gentoo-f56997f551acc1a3adc6da6c7271060379fce56f.zip
kde-frameworks/kwayland: Fix misplaced panel popups in Plasma Wayland
Upstream commit d02188ad1f6222215adcf842f4c9806ba9e62ccb See also: https://mail.kde.org/pipermail/kde-frameworks-devel/2022-September/123098.html Signed-off-by: Andreas Sturmlechner <asturm@gentoo.org>
-rw-r--r--kde-frameworks/kwayland/files/kwayland-5.98.0-plasmashell-fallback-for-applet-popups.patch37
-rw-r--r--kde-frameworks/kwayland/kwayland-5.98.0-r1.ebuild41
2 files changed, 78 insertions, 0 deletions
diff --git a/kde-frameworks/kwayland/files/kwayland-5.98.0-plasmashell-fallback-for-applet-popups.patch b/kde-frameworks/kwayland/files/kwayland-5.98.0-plasmashell-fallback-for-applet-popups.patch
new file mode 100644
index 000000000000..7cc45ad8e2e6
--- /dev/null
+++ b/kde-frameworks/kwayland/files/kwayland-5.98.0-plasmashell-fallback-for-applet-popups.patch
@@ -0,0 +1,37 @@
+From d02188ad1f6222215adcf842f4c9806ba9e62ccb Mon Sep 17 00:00:00 2001
+From: Xaver Hugl <xaver.hugl@gmail.com>
+Date: Sat, 17 Sep 2022 01:18:28 +0200
+Subject: [PATCH] client/plasmashell: add fallback for applet popups
+
+When the compositor doesn't support applet popups, the current code sends an
+invalid surface role. This causes KWin to fall back to the "normal" surface role
+and do normal window placement on it.
+
+CCBUG: 459188
+---
+ src/client/plasmashell.cpp | 9 ++++++++-
+ 1 file changed, 8 insertions(+), 1 deletion(-)
+
+diff --git a/src/client/plasmashell.cpp b/src/client/plasmashell.cpp
+index dc613cb..93bc31c 100644
+--- a/src/client/plasmashell.cpp
++++ b/src/client/plasmashell.cpp
+@@ -276,7 +276,14 @@ void PlasmaShellSurface::setRole(PlasmaShellSurface::Role role)
+ }
+ break;
+ case Role::AppletPopup:
+- wlRole = ORG_KDE_PLASMA_SURFACE_ROLE_APPLETPOPUP;
++ // ORG_KDE_PLASMA_SURFACE_ROLE_APPLETPOPUP_SINCE_VERSION is not used for this check
++ // because it wrongly is 7 with old plasma wayland protocols
++ if (wl_proxy_get_version(d->surface) < 8) {
++ // dock is what applet popups were before
++ wlRole = ORG_KDE_PLASMA_SURFACE_ROLE_PANEL;
++ } else {
++ wlRole = ORG_KDE_PLASMA_SURFACE_ROLE_APPLETPOPUP;
++ }
+ break;
+ default:
+ Q_UNREACHABLE();
+--
+GitLab
+
diff --git a/kde-frameworks/kwayland/kwayland-5.98.0-r1.ebuild b/kde-frameworks/kwayland/kwayland-5.98.0-r1.ebuild
new file mode 100644
index 000000000000..59884e1adf75
--- /dev/null
+++ b/kde-frameworks/kwayland/kwayland-5.98.0-r1.ebuild
@@ -0,0 +1,41 @@
+# Copyright 1999-2022 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+ECM_TEST="true"
+PVCUT=$(ver_cut 1-2)
+QTMIN=5.15.5
+inherit ecm frameworks.kde.org
+
+DESCRIPTION="Qt-style client and server library wrapper for Wayland libraries"
+HOMEPAGE="https://invent.kde.org/frameworks/kwayland"
+
+LICENSE="LGPL-2.1"
+KEYWORDS="~amd64 ~arm ~arm64 ~loong ~ppc64 ~riscv ~x86"
+IUSE=""
+
+# All failing, I guess we need a virtual wayland server
+RESTRICT="test"
+
+# slot ops: includes qpa/qplatformnativeinterface.h, surface_p.h
+RDEPEND="
+ >=dev-libs/wayland-1.15.0
+ >=dev-qt/qtconcurrent-${QTMIN}:5
+ >=dev-qt/qtgui-${QTMIN}:5=[egl]
+ >=dev-qt/qtwayland-${QTMIN}:5=
+ media-libs/libglvnd
+"
+DEPEND="${RDEPEND}
+ >=dev-libs/plasma-wayland-protocols-1.7.0
+ >=dev-libs/wayland-protocols-1.15
+ sys-kernel/linux-headers
+"
+BDEPEND="
+ >=dev-qt/qtwaylandscanner-${QTMIN}:5
+ >=dev-util/wayland-scanner-1.19.0
+"
+
+PATCHES=(
+ "${FILESDIR}/${P}-plasmashell-fallback-for-applet-popups.patch"
+)