diff options
| author | vaxerski <vaxry@vaxry.net> | 2023-12-24 15:08:48 +0100 |
|---|---|---|
| committer | vaxerski <vaxry@vaxry.net> | 2023-12-24 15:08:48 +0100 |
| commit | 5aab4a96e3c01cce181b42d51140f7ed4e555d8b (patch) | |
| tree | f1ceccea228f493c0afd0e07239b277fb1e54206 /src/managers/KeybindManager.cpp | |
| parent | ff75f991a50d9e82bb4ee4cacace551225ef2038 (diff) | |
dispatchers: add tiled/floating to cyclenext
Diffstat (limited to 'src/managers/KeybindManager.cpp')
| -rw-r--r-- | src/managers/KeybindManager.cpp | 14 |
1 files changed, 11 insertions, 3 deletions
diff --git a/src/managers/KeybindManager.cpp b/src/managers/KeybindManager.cpp index 6aea4e32..d58aa8d8 100644 --- a/src/managers/KeybindManager.cpp +++ b/src/managers/KeybindManager.cpp @@ -1571,10 +1571,18 @@ void CKeybindManager::circleNext(std::string arg) { return; } - if (arg == "last" || arg == "l" || arg == "prev" || arg == "p") - switchToWindow(g_pCompositor->getPrevWindowOnWorkspace(g_pCompositor->m_pLastWindow, true)); + CVarList args{arg, 0, 's', true}; + + std::optional<bool> floatStatus = {}; + if (args.contains("tile") || args.contains("tiled")) + floatStatus = false; + else if (args.contains("float") || args.contains("floating")) + floatStatus = true; + + if (args.contains("prev") || args.contains("p") || args.contains("last") || args.contains("l")) + switchToWindow(g_pCompositor->getPrevWindowOnWorkspace(g_pCompositor->m_pLastWindow, true, floatStatus)); else - switchToWindow(g_pCompositor->getNextWindowOnWorkspace(g_pCompositor->m_pLastWindow, true)); + switchToWindow(g_pCompositor->getNextWindowOnWorkspace(g_pCompositor->m_pLastWindow, true, floatStatus)); } void CKeybindManager::focusWindow(std::string regexp) { |
