diff --git a/src/Compositor.cpp b/src/Compositor.cpp index b78d3e9b..8d2fbb7b 100644 --- a/src/Compositor.cpp +++ b/src/Compositor.cpp @@ -1064,7 +1064,7 @@ bool CCompositor::isWorkspaceVisible(const int& w) { if (m->activeWorkspace == w) return true; - if (m->specialWorkspaceID && isWorkspaceSpecial(w)) + if (m->specialWorkspaceID == w) return true; } diff --git a/src/helpers/Monitor.cpp b/src/helpers/Monitor.cpp index f217f782..1102517d 100644 --- a/src/helpers/Monitor.cpp +++ b/src/helpers/Monitor.cpp @@ -579,6 +579,11 @@ void CMonitor::setSpecialWorkspace(CWorkspace* const pWorkspace) { return; } + if (specialWorkspaceID) { + if (const auto EXISTINGSPECIAL = g_pCompositor->getWorkspaceByID(specialWorkspaceID); EXISTINGSPECIAL) + EXISTINGSPECIAL->startAnim(false, false); + } + // open special pWorkspace->m_iMonitorID = ID; specialWorkspaceID = pWorkspace->m_iID;