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
This commit is contained in:
Sungyoon Cho
2024-04-11 01:26:11 +09:00
committed by GitHub
parent b573c20125
commit c35fa9bacc
6 changed files with 56 additions and 23 deletions

View File

@@ -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) {