summaryrefslogtreecommitdiff
path: root/src/managers/KeybindManager.cpp
diff options
context:
space:
mode:
authorvaxerski <vaxry@vaxry.net>2023-12-24 15:08:48 +0100
committervaxerski <vaxry@vaxry.net>2023-12-24 15:08:48 +0100
commit5aab4a96e3c01cce181b42d51140f7ed4e555d8b (patch)
treef1ceccea228f493c0afd0e07239b277fb1e54206 /src/managers/KeybindManager.cpp
parentff75f991a50d9e82bb4ee4cacace551225ef2038 (diff)
dispatchers: add tiled/floating to cyclenext
Diffstat (limited to 'src/managers/KeybindManager.cpp')
-rw-r--r--src/managers/KeybindManager.cpp14
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) {