From 50f978e518c83872a25a47b5ddde310ec24ac203 Mon Sep 17 00:00:00 2001 From: vaxerski <43317083+vaxerski@users.noreply.github.com> Date: Mon, 16 May 2022 17:37:46 +0200 Subject: Added togglesplit dispatcher --- src/layout/DwindleLayout.cpp | 20 ++++++++++++++++++++ 1 file changed, 20 insertions(+) (limited to 'src/layout/DwindleLayout.cpp') 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 @@ -832,5 +832,25 @@ 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 -- cgit v1.2.3