diff --git a/src/helpers/Monitor.cpp b/src/helpers/Monitor.cpp index 47bb9317..47ed79ea 100644 --- a/src/helpers/Monitor.cpp +++ b/src/helpers/Monitor.cpp @@ -522,6 +522,8 @@ void CMonitor::changeWorkspace(CWorkspace* const pWorkspace, bool internal) { g_pEventManager->postEvent(SHyprIPCEvent{"workspace", pWorkspace->m_szName}); EMIT_HOOK_EVENT("workspace", pWorkspace); } + + g_pHyprRenderer->damageMonitor(this); } void CMonitor::changeWorkspace(const int& id, bool internal) { @@ -529,6 +531,8 @@ void CMonitor::changeWorkspace(const int& id, bool internal) { } void CMonitor::setSpecialWorkspace(CWorkspace* const pWorkspace) { + g_pHyprRenderer->damageMonitor(this); + if (!pWorkspace) { // remove special if exists if (const auto EXISTINGSPECIAL = g_pCompositor->getWorkspaceByID(specialWorkspaceID); EXISTINGSPECIAL) diff --git a/src/managers/KeybindManager.cpp b/src/managers/KeybindManager.cpp index 889050bc..c377080f 100644 --- a/src/managers/KeybindManager.cpp +++ b/src/managers/KeybindManager.cpp @@ -876,6 +876,8 @@ void CKeybindManager::moveActiveToWorkspace(std::string args) { auto pWorkspace = g_pCompositor->getWorkspaceByID(WORKSPACEID); + g_pHyprRenderer->damageWindow(PWINDOW); + if (pWorkspace) { g_pCompositor->moveWindowToWorkspaceSafe(PWINDOW, pWorkspace); const auto PMONITOR = g_pCompositor->getMonitorFromID(pWorkspace->m_iMonitorID); @@ -919,6 +921,8 @@ void CKeybindManager::moveActiveToWorkspaceSilent(std::string args) { if (WORKSPACEID == PWINDOW->m_iWorkspaceID) return; + g_pHyprRenderer->damageWindow(PWINDOW); + auto pWorkspace = g_pCompositor->getWorkspaceByID(WORKSPACEID); const auto OLDMIDDLE = PWINDOW->middle();