summaryrefslogtreecommitdiff
path: root/src/Compositor.cpp
diff options
context:
space:
mode:
authorvaxerski <43317083+vaxerski@users.noreply.github.com>2022-07-09 18:39:41 +0200
committervaxerski <43317083+vaxerski@users.noreply.github.com>2022-07-09 18:39:41 +0200
commitc44cafda9723e268dcedd71eb2f9b918429bbd0f (patch)
treeceab5301b4450eefe3de10d8c44436c38cd0da27 /src/Compositor.cpp
parentddc4cbbd7e572d5f81b73375395c9ba59a97556b (diff)
added cyclenext param previous
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 0dd0d705..906946c8 100644
--- a/src/Compositor.cpp
+++ b/src/Compositor.cpp
@@ -938,6 +938,29 @@ CWindow* CCompositor::getNextWindowOnWorkspace(CWindow* pWindow) {
return nullptr;
}
+CWindow* CCompositor::getPrevWindowOnWorkspace(CWindow* pWindow) {
+ bool gotToWindow = false;
+ for (auto it = m_vWindows.rbegin(); it != m_vWindows.rend(); it++) {
+ if (it->get() != pWindow && !gotToWindow)
+ continue;
+
+ if (it->get() == pWindow) {
+ gotToWindow = true;
+ continue;
+ }
+
+ if ((*it)->m_iWorkspaceID == pWindow->m_iWorkspaceID && (*it)->m_bIsMapped && !(*it)->m_bHidden)
+ return it->get();
+ }
+
+ for (auto it = m_vWindows.rbegin(); it != m_vWindows.rend(); it++) {
+ if (it->get() != pWindow && (*it)->m_iWorkspaceID == pWindow->m_iWorkspaceID && (*it)->m_bIsMapped && !(*it)->m_bHidden)
+ return it->get();
+ }
+
+ return nullptr;
+}
+
int CCompositor::getNextAvailableNamedWorkspace() {
int lowest = -1337 + 1;
for (auto& w : m_vWorkspaces) {