From b1b24cb21a36713aa7c8c0d39464504c97423139 Mon Sep 17 00:00:00 2001 From: vaxerski <43317083+vaxerski@users.noreply.github.com> Date: Sat, 28 May 2022 19:16:20 +0200 Subject: Added changegroupactive direction --- src/layout/DwindleLayout.cpp | 16 ++++++++++++---- 1 file changed, 12 insertions(+), 4 deletions(-) (limited to 'src/layout/DwindleLayout.cpp') diff --git a/src/layout/DwindleLayout.cpp b/src/layout/DwindleLayout.cpp index eef98622..ef312abd 100644 --- a/src/layout/DwindleLayout.cpp +++ b/src/layout/DwindleLayout.cpp @@ -735,7 +735,7 @@ void CHyprDwindleLayout::toggleWindowGroup(CWindow* pWindow) { } } -void CHyprDwindleLayout::switchGroupWindow(CWindow* pWindow) { +void CHyprDwindleLayout::switchGroupWindow(CWindow* pWindow, bool forward) { if (!g_pCompositor->windowValidMapped(pWindow)) return; // reject @@ -747,7 +747,13 @@ void CHyprDwindleLayout::switchGroupWindow(CWindow* pWindow) { if (!PNODE->pGroupParent) return; // reject - PNODE->pGroupParent->groupMemberActive++; + if (forward) + PNODE->pGroupParent->groupMemberActive++; + else + PNODE->pGroupParent->groupMemberActive--; + + if (PNODE->pGroupParent->groupMemberActive < 0) + PNODE->pGroupParent->groupMemberActive = PNODE->pGroupParent->groupMembers.size() - 1; if ((long unsigned int)PNODE->pGroupParent->groupMemberActive >= PNODE->pGroupParent->groupMembers.size()) PNODE->pGroupParent->groupMemberActive = 0; @@ -847,8 +853,10 @@ void CHyprDwindleLayout::alterSplitRatioBy(CWindow* pWindow, float ratio) { void CHyprDwindleLayout::layoutMessage(SLayoutMessageHeader header, std::string message) { if (message == "togglegroup") toggleWindowGroup(header.pWindow); - else if (message == "changegroupactive") - switchGroupWindow(header.pWindow); + else if (message == "changegroupactivef") + switchGroupWindow(header.pWindow, true); + else if (message == "changegroupactiveb") + switchGroupWindow(header.pWindow, false); else if (message == "togglesplit") toggleSplit(header.pWindow); } -- cgit v1.2.3