summaryrefslogtreecommitdiff
path: root/src/managers
diff options
context:
space:
mode:
authorSungyoon Cho <sungyoon@sungyooncho.dev>2024-04-11 01:26:11 +0900
committerGitHub <noreply@github.com>2024-04-10 17:26:11 +0100
commitc35fa9bacc960fb37ebac8541eadc2f4696b287c (patch)
tree86db2e1ce6038614f7e2443d5d61d06aa863c455 /src/managers
parentb573c2012587a4a4d84a306a157db77bf4c3566e (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')
-rw-r--r--src/managers/KeybindManager.cpp19
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) {