mirror of
https://github.com/hyprwm/Hyprland
synced 2024-11-22 17:25:59 +01:00
Added changegroupactive direction
This commit is contained in:
parent
9ede0f1c7d
commit
b1b24cb21a
4 changed files with 17 additions and 6 deletions
|
@ -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))
|
if (!g_pCompositor->windowValidMapped(pWindow))
|
||||||
return; // reject
|
return; // reject
|
||||||
|
|
||||||
|
@ -747,7 +747,13 @@ void CHyprDwindleLayout::switchGroupWindow(CWindow* pWindow) {
|
||||||
if (!PNODE->pGroupParent)
|
if (!PNODE->pGroupParent)
|
||||||
return; // reject
|
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())
|
if ((long unsigned int)PNODE->pGroupParent->groupMemberActive >= PNODE->pGroupParent->groupMembers.size())
|
||||||
PNODE->pGroupParent->groupMemberActive = 0;
|
PNODE->pGroupParent->groupMemberActive = 0;
|
||||||
|
@ -847,8 +853,10 @@ void CHyprDwindleLayout::alterSplitRatioBy(CWindow* pWindow, float ratio) {
|
||||||
void CHyprDwindleLayout::layoutMessage(SLayoutMessageHeader header, std::string message) {
|
void CHyprDwindleLayout::layoutMessage(SLayoutMessageHeader header, std::string message) {
|
||||||
if (message == "togglegroup")
|
if (message == "togglegroup")
|
||||||
toggleWindowGroup(header.pWindow);
|
toggleWindowGroup(header.pWindow);
|
||||||
else if (message == "changegroupactive")
|
else if (message == "changegroupactivef")
|
||||||
switchGroupWindow(header.pWindow);
|
switchGroupWindow(header.pWindow, true);
|
||||||
|
else if (message == "changegroupactiveb")
|
||||||
|
switchGroupWindow(header.pWindow, false);
|
||||||
else if (message == "togglesplit")
|
else if (message == "togglesplit")
|
||||||
toggleSplit(header.pWindow);
|
toggleSplit(header.pWindow);
|
||||||
}
|
}
|
||||||
|
|
|
@ -71,7 +71,7 @@ public:
|
||||||
SDwindleNodeData* getMasterNodeOnWorkspace(const int&);
|
SDwindleNodeData* getMasterNodeOnWorkspace(const int&);
|
||||||
|
|
||||||
void toggleWindowGroup(CWindow*);
|
void toggleWindowGroup(CWindow*);
|
||||||
void switchGroupWindow(CWindow*);
|
void switchGroupWindow(CWindow*, bool forward);
|
||||||
void toggleSplit(CWindow*);
|
void toggleSplit(CWindow*);
|
||||||
|
|
||||||
friend struct SDwindleNodeData;
|
friend struct SDwindleNodeData;
|
||||||
|
|
|
@ -503,7 +503,10 @@ void CKeybindManager::toggleGroup(std::string args) {
|
||||||
void CKeybindManager::changeGroupActive(std::string args) {
|
void CKeybindManager::changeGroupActive(std::string args) {
|
||||||
SLayoutMessageHeader header;
|
SLayoutMessageHeader header;
|
||||||
header.pWindow = g_pCompositor->m_pLastWindow;
|
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) {
|
void CKeybindManager::toggleSplit(std::string args) {
|
||||||
|
|
BIN
v0.1.1beta.tar.gz
Normal file
BIN
v0.1.1beta.tar.gz
Normal file
Binary file not shown.
Loading…
Reference in a new issue