diff options
| author | Sungyoon Cho <sungyoon@sungyooncho.dev> | 2024-04-11 01:26:11 +0900 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2024-04-10 17:26:11 +0100 |
| commit | c35fa9bacc960fb37ebac8541eadc2f4696b287c (patch) | |
| tree | 86db2e1ce6038614f7e2443d5d61d06aa863c455 /src/managers/KeybindManager.cpp | |
| parent | b573c2012587a4a4d84a306a157db77bf4c3566e (diff) | |
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
Diffstat (limited to 'src/managers/KeybindManager.cpp')
| -rw-r--r-- | src/managers/KeybindManager.cpp | 19 |
1 files changed, 10 insertions, 9 deletions
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<bool> 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) { |
