summaryrefslogtreecommitdiff
blob: 7cc45ad8e2e6130548b920d9039046d1b62e5d19 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
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