summaryrefslogtreecommitdiff
path: root/src/layout/DwindleLayout.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/layout/DwindleLayout.cpp')
-rw-r--r--src/layout/DwindleLayout.cpp20
1 files changed, 20 insertions, 0 deletions
diff --git a/src/layout/DwindleLayout.cpp b/src/layout/DwindleLayout.cpp
index c7e3aa12..d224e775 100644
--- a/src/layout/DwindleLayout.cpp
+++ b/src/layout/DwindleLayout.cpp
@@ -833,4 +833,24 @@ void CHyprDwindleLayout::alterSplitRatioBy(CWindow* pWindow, float ratio) {
PNODE->pParent->splitRatio = std::clamp(PNODE->pParent->splitRatio + ratio, 0.1f, 1.9f);
PNODE->pParent->recalcSizePosRecursive();
+}
+
+void CHyprDwindleLayout::layoutMessage(SLayoutMessageHeader header, std::string message) {
+ if (message == "togglegroup")
+ toggleWindowGroup(header.pWindow);
+ else if (message == "changegroupactive")
+ switchGroupWindow(header.pWindow);
+ else if (message == "togglesplit")
+ toggleSplit(header.pWindow);
+}
+
+void CHyprDwindleLayout::toggleSplit(CWindow* pWindow) {
+ const auto PNODE = getNodeFromWindow(pWindow);
+
+ if (!PNODE || !PNODE->pParent)
+ return;
+
+ PNODE->pParent->splitTop = !PNODE->pParent->splitTop;
+
+ PNODE->pParent->recalcSizePosRecursive();
} \ No newline at end of file