Added changegroupactive direction

This commit is contained in:
vaxerski 2022-05-28 19:16:20 +02:00
parent 9ede0f1c7d
commit b1b24cb21a
4 changed files with 17 additions and 6 deletions

View File

@ -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);
}

View File

@ -71,7 +71,7 @@ public:
SDwindleNodeData* getMasterNodeOnWorkspace(const int&);
void toggleWindowGroup(CWindow*);
void switchGroupWindow(CWindow*);
void switchGroupWindow(CWindow*, bool forward);
void toggleSplit(CWindow*);
friend struct SDwindleNodeData;

View File

@ -503,7 +503,10 @@ void CKeybindManager::toggleGroup(std::string args) {
void CKeybindManager::changeGroupActive(std::string args) {
SLayoutMessageHeader header;
header.pWindow = g_pCompositor->m_pLastWindow;
g_pLayoutManager->getCurrentLayout()->layoutMessage(header, "changegroupactive");
if (args == "b")
g_pLayoutManager->getCurrentLayout()->layoutMessage(header, "changegroupactiveb");
else
g_pLayoutManager->getCurrentLayout()->layoutMessage(header, "changegroupactivef");
}
void CKeybindManager::toggleSplit(std::string args) {

BIN
v0.1.1beta.tar.gz Normal file

Binary file not shown.