summaryrefslogtreecommitdiff
path: root/src/layout/DwindleLayout.cpp
diff options
context:
space:
mode:
authorvaxerski <43317083+vaxerski@users.noreply.github.com>2022-05-16 17:37:46 +0200
committervaxerski <43317083+vaxerski@users.noreply.github.com>2022-05-16 17:37:46 +0200
commit50f978e518c83872a25a47b5ddde310ec24ac203 (patch)
treee7632acf6ea22eae66fd1262e834212ff197fdf4 /src/layout/DwindleLayout.cpp
parente90c1f7022ffd82e463c48260a97850c834f347d (diff)
Added togglesplit dispatcher
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