From c35fa9bacc960fb37ebac8541eadc2f4696b287c Mon Sep 17 00:00:00 2001 From: Sungyoon Cho Date: Thu, 11 Apr 2024 01:26:11 +0900 Subject: workspace: update windows when selector match could change (#5533) * workspace: update windows when group updates * workspace: update windows when floating toggle * workspace: update windows when stop dragging window by mouse --- src/managers/KeybindManager.cpp | 19 ++++++++++--------- 1 file changed, 10 insertions(+), 9 deletions(-) (limited to 'src/managers') diff --git a/src/managers/KeybindManager.cpp b/src/managers/KeybindManager.cpp index cca72ca8..63c0c95f 100644 --- a/src/managers/KeybindManager.cpp +++ b/src/managers/KeybindManager.cpp @@ -202,11 +202,17 @@ bool CKeybindManager::ensureMouseBindState() { return false; if (g_pInputManager->currentlyDraggedWindow) { + CWindow* lastDraggedWindow = g_pInputManager->currentlyDraggedWindow; + m_bIsMouseBindActive = false; g_pLayoutManager->getCurrentLayout()->onEndDragWindow(); g_pInputManager->currentlyDraggedWindow = nullptr; g_pInputManager->dragMode = MBIND_INVALID; + g_pCompositor->updateWorkspaceWindows(lastDraggedWindow->workspaceID()); + g_pCompositor->updateWorkspaceSpecialRenderData(lastDraggedWindow->workspaceID()); + g_pCompositor->updateAllWindowsAnimatedDecorationValues(); + return true; } @@ -857,19 +863,16 @@ static void toggleActiveFloatingCore(std::string args, std::optional float CWindow* curr = PCURRENT->m_sGroupData.pNextWindow; while (curr != PCURRENT) { curr->m_bIsFloating = PCURRENT->m_bIsFloating; - curr->updateDynamicRules(); - curr->updateSpecialRenderData(); - curr = curr->m_sGroupData.pNextWindow; + curr = curr->m_sGroupData.pNextWindow; } - - g_pCompositor->updateWorkspaceWindows(PWINDOW->workspaceID()); } else { PWINDOW->m_bIsFloating = !PWINDOW->m_bIsFloating; - g_pCompositor->updateWorkspaceWindows(PWINDOW->workspaceID()); - g_pLayoutManager->getCurrentLayout()->changeWindowFloatingMode(PWINDOW); } + g_pCompositor->updateWorkspaceWindows(PWINDOW->workspaceID()); + g_pCompositor->updateWorkspaceSpecialRenderData(PWINDOW->workspaceID()); + g_pCompositor->updateAllWindowsAnimatedDecorationValues(); } void CKeybindManager::toggleActiveFloating(std::string args) { @@ -1282,8 +1285,6 @@ void CKeybindManager::toggleGroup(std::string args) { PWINDOW->createGroup(); else PWINDOW->destroyGroup(); - - g_pCompositor->updateAllWindowsAnimatedDecorationValues(); } void CKeybindManager::changeGroupActive(std::string args) { -- cgit v1.2.3