summaryrefslogtreecommitdiff
path: root/kde-plasma/kwin/files/kwin-5.24.4-fix-current-VD-always-added.patch
diff options
context:
space:
mode:
Diffstat (limited to 'kde-plasma/kwin/files/kwin-5.24.4-fix-current-VD-always-added.patch')
-rw-r--r--kde-plasma/kwin/files/kwin-5.24.4-fix-current-VD-always-added.patch50
1 files changed, 50 insertions, 0 deletions
diff --git a/kde-plasma/kwin/files/kwin-5.24.4-fix-current-VD-always-added.patch b/kde-plasma/kwin/files/kwin-5.24.4-fix-current-VD-always-added.patch
new file mode 100644
index 000000000000..195d33b1f3a2
--- /dev/null
+++ b/kde-plasma/kwin/files/kwin-5.24.4-fix-current-VD-always-added.patch
@@ -0,0 +1,50 @@
+From c1d7919ad7cc8a7e55f5b93ec84de63547bc53b9 Mon Sep 17 00:00:00 2001
+From: Ismael Asensio <isma.af@gmail.com>
+Date: Fri, 8 Apr 2022 22:53:08 +0200
+Subject: [PATCH] AbstractClient: Fix the current VD being always added to the
+ plasma interface
+
+When setting-up the plasma window interface we need to call
+`setOnAllDesktops()` after the actual virtual desktops have
+been set.
+
+Otherwise, the current desktop would be always added to the
+interface (as if the user were unsetting the "onAllDesktops"
+flag) and the plasma interface and KWin can get un-synced,
+specially if there are specific window rules.
+
+BUG: 452171
+FIXED-IN: 5.24.5
+
+
+(cherry picked from commit 4c8711f121430caa658f9848070e4e25c4a12208)
+---
+ src/abstract_client.cpp | 5 ++++-
+ 1 file changed, 4 insertions(+), 1 deletion(-)
+
+diff --git a/src/abstract_client.cpp b/src/abstract_client.cpp
+index 7e8a7eec04..0714b9ac3f 100644
+--- a/src/abstract_client.cpp
++++ b/src/abstract_client.cpp
+@@ -1488,7 +1488,6 @@ void AbstractClient::setupWindowManagementInterface()
+ w->setKeepBelow(keepBelow());
+ w->setMaximized(maximizeMode() == KWin::MaximizeFull);
+ w->setMinimized(isMinimized());
+- w->setOnAllDesktops(isOnAllDesktops());
+ w->setDemandsAttention(isDemandingAttention());
+ w->setCloseable(isCloseable());
+ w->setMaximizeable(isMaximizable());
+@@ -1620,6 +1619,10 @@ void AbstractClient::setupWindowManagementInterface()
+ for (const auto vd : qAsConst(m_desktops)) {
+ w->addPlasmaVirtualDesktop(vd->id());
+ }
++ // We need to set `OnAllDesktops` after the actual VD list has been added.
++ // Otherwise it will unconditionally add the current desktop to the interface
++ // which may not be the case, for example, when using rules
++ w->setOnAllDesktops(isOnAllDesktops());
+
+ //Plasma Virtual desktop management
+ //show/hide when the window enters/exits from desktop
+--
+GitLab
+