From c1d7919ad7cc8a7e55f5b93ec84de63547bc53b9 Mon Sep 17 00:00:00 2001 From: Ismael Asensio 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