commit:     f56997f551acc1a3adc6da6c7271060379fce56f
Author:     Andreas Sturmlechner <asturm <AT> gentoo <DOT> org>
AuthorDate: Sat Sep 24 19:34:11 2022 +0000
Commit:     Andreas Sturmlechner <asturm <AT> gentoo <DOT> org>
CommitDate: Sat Sep 24 20:39:38 2022 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=f56997f5

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 <AT> gentoo.org>

 ....0-plasmashell-fallback-for-applet-popups.patch | 37 +++++++++++++++++++
 kde-frameworks/kwayland/kwayland-5.98.0-r1.ebuild  | 41 ++++++++++++++++++++++
 2 files changed, 78 insertions(+)

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 <[email protected]>
+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"
+)

Reply via email to