diff --git a/src/Compositor.cpp b/src/Compositor.cpp index a2a82b4e9..55f9e0b47 100644 --- a/src/Compositor.cpp +++ b/src/Compositor.cpp @@ -1888,12 +1888,8 @@ void CCompositor::moveWorkspaceToMonitor(CWorkspace* pWorkspace, CMonitor* pMoni Debug::log(LOG, "moveWorkspaceToMonitor: Plugging gap with existing %d", nextWorkspaceOnMonitorID); - pWorkspace->m_bIndestructible = true; // so that changeworkspace doesn't yeet it if it's empty - g_pKeybindManager->focusMonitor(std::to_string(POLDMON->ID)); - g_pKeybindManager->changeworkspace(std::to_string(nextWorkspaceOnMonitorID)); - - pWorkspace->m_bIndestructible = false; + g_pKeybindManager->changeworkspace("[internal]" + std::to_string(nextWorkspaceOnMonitorID)); // move the workspace diff --git a/src/managers/KeybindManager.cpp b/src/managers/KeybindManager.cpp index a04f67b90..cdb9a637b 100644 --- a/src/managers/KeybindManager.cpp +++ b/src/managers/KeybindManager.cpp @@ -961,7 +961,8 @@ void CKeybindManager::changeworkspace(std::string args) { g_pCompositor->warpCursorTo(PMONITOR->vecPosition + PMONITOR->vecSize / 2.f); // Destroy old workspace if it is empty - g_pCompositor->sanityCheckWorkspaces(); + if (!internal) + g_pCompositor->sanityCheckWorkspaces(); Debug::log(LOG, "Changed to workspace %i", workspaceToChangeTo); }