diff options
| author | MightyPlaza <123664421+MightyPlaza@users.noreply.github.com> | 2023-07-18 22:30:10 +0000 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2023-07-19 00:30:10 +0200 |
| commit | 3b035977843f14410b3e3985ddee566f1bd29ad0 (patch) | |
| tree | 30163b0af6839733eea814d90932381fecde178f /src/managers/KeybindManager.cpp | |
| parent | ce9c5fd7227d6f90a103a0ae379b61a429a9f572 (diff) | |
keybinds: movegroupwindow-improvement (#2740)
* movegroupwindow-improvement
* use std::swap
Diffstat (limited to 'src/managers/KeybindManager.cpp')
| -rw-r--r-- | src/managers/KeybindManager.cpp | 13 |
1 files changed, 7 insertions, 6 deletions
diff --git a/src/managers/KeybindManager.cpp b/src/managers/KeybindManager.cpp index f86134df..e4c9b50f 100644 --- a/src/managers/KeybindManager.cpp +++ b/src/managers/KeybindManager.cpp @@ -1013,11 +1013,9 @@ void CKeybindManager::moveFocusTo(std::string args) { } }; - const auto PWINDOWTOCHANGETO = PLASTWINDOW->m_bIsFullscreen - ? (arg == 'd' || arg == 'b' || arg == 'r' - ? g_pCompositor->getNextWindowOnWorkspace(PLASTWINDOW, true) - : g_pCompositor->getPrevWindowOnWorkspace(PLASTWINDOW, true)) - : g_pCompositor->getWindowInDirection(PLASTWINDOW, arg); + const auto PWINDOWTOCHANGETO = PLASTWINDOW->m_bIsFullscreen ? + (arg == 'd' || arg == 'b' || arg == 'r' ? g_pCompositor->getNextWindowOnWorkspace(PLASTWINDOW, true) : g_pCompositor->getPrevWindowOnWorkspace(PLASTWINDOW, true)) : + g_pCompositor->getWindowInDirection(PLASTWINDOW, arg); // Found window in direction, switch to it if (PWINDOWTOCHANGETO) { @@ -2088,6 +2086,9 @@ void CKeybindManager::moveGroupWindow(std::string args) { if (!g_pCompositor->m_pLastWindow || !g_pCompositor->m_pLastWindow->m_sGroupData.pNextWindow) return; - g_pCompositor->m_pLastWindow->switchWithWindowInGroup(BACK ? g_pCompositor->m_pLastWindow->getGroupPrevious() : g_pCompositor->m_pLastWindow->m_sGroupData.pNextWindow); + if ((!BACK && g_pCompositor->m_pLastWindow->m_sGroupData.pNextWindow->m_sGroupData.head) || (BACK && g_pCompositor->m_pLastWindow->m_sGroupData.head)) + std::swap(g_pCompositor->m_pLastWindow->m_sGroupData.head, g_pCompositor->m_pLastWindow->m_sGroupData.pNextWindow->m_sGroupData.head); + else + g_pCompositor->m_pLastWindow->switchWithWindowInGroup(BACK ? g_pCompositor->m_pLastWindow->getGroupPrevious() : g_pCompositor->m_pLastWindow->m_sGroupData.pNextWindow); g_pCompositor->m_pLastWindow->updateWindowDecos(); } |
