diff options
| author | vaxerski <43317083+vaxerski@users.noreply.github.com> | 2022-04-13 20:45:06 +0200 |
|---|---|---|
| committer | vaxerski <43317083+vaxerski@users.noreply.github.com> | 2022-04-13 20:45:06 +0200 |
| commit | 158af1eb090dbae7650e99878942363651c216e3 (patch) | |
| tree | 4fdb09c9621b439f1fcd22e8151d0f6d863bd58f /src/Compositor.cpp | |
| parent | a558bcdfbffe41ac92302456468609e62bca2282 (diff) | |
better keyboard window switching
Diffstat (limited to 'src/Compositor.cpp')
| -rw-r--r-- | src/Compositor.cpp | 23 |
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 |
