summaryrefslogtreecommitdiff
path: root/src/Compositor.cpp
diff options
context:
space:
mode:
authorvaxerski <43317083+vaxerski@users.noreply.github.com>2022-04-13 20:45:06 +0200
committervaxerski <43317083+vaxerski@users.noreply.github.com>2022-04-13 20:45:06 +0200
commit158af1eb090dbae7650e99878942363651c216e3 (patch)
tree4fdb09c9621b439f1fcd22e8151d0f6d863bd58f /src/Compositor.cpp
parenta558bcdfbffe41ac92302456468609e62bca2282 (diff)
better keyboard window switching
Diffstat (limited to 'src/Compositor.cpp')
-rw-r--r--src/Compositor.cpp23
1 files changed, 23 insertions, 0 deletions
diff --git a/src/Compositor.cpp b/src/Compositor.cpp
index d9e3ebf2..2f1746c9 100644
--- a/src/Compositor.cpp
+++ b/src/Compositor.cpp
@@ -649,4 +649,27 @@ void CCompositor::deactivateAllWLRWorkspaces() {
if (w.m_pWlrHandle)
wlr_ext_workspace_handle_v1_set_active(w.m_pWlrHandle, false);
}
+}
+
+CWindow* CCompositor::getNextWindowOnWorkspace(CWindow* pWindow) {
+ bool gotToWindow = false;
+ for (auto& w : m_lWindows) {
+ if (&w != pWindow && !gotToWindow)
+ continue;
+
+ if (&w == pWindow) {
+ gotToWindow = true;
+ continue;
+ }
+
+ if (w.m_iWorkspaceID == pWindow->m_iWorkspaceID && windowValidMapped(&w))
+ return &w;
+ }
+
+ for (auto& w : m_lWindows) {
+ if (&w != pWindow && w.m_iWorkspaceID == pWindow->m_iWorkspaceID && windowValidMapped(&w))
+ return &w;
+ }
+
+ return nullptr;
} \ No newline at end of file