From 38f7b4f0951ea4738e128ab53f77a579f21c9b4a Mon Sep 17 00:00:00 2001 From: outfoxxed Date: Thu, 27 Apr 2023 23:21:23 -0700 Subject: [PATCH] Add togglesplit --- src/Hy3Layout.cpp | 20 ++++++++++++++++++++ src/SelectionHook.cpp | 2 +- 2 files changed, 21 insertions(+), 1 deletion(-) diff --git a/src/Hy3Layout.cpp b/src/Hy3Layout.cpp index eb7cdb8..3e3b303 100644 --- a/src/Hy3Layout.cpp +++ b/src/Hy3Layout.cpp @@ -959,6 +959,26 @@ void Hy3Layout::fullscreenRequestForWindow(CWindow* window, eFullscreenMode full } std::any Hy3Layout::layoutMessage(SLayoutMessageHeader header, std::string content) { + if (content == "togglesplit") { + auto* node = this->getNodeFromWindow(header.pWindow); + if (node != nullptr && node->parent != nullptr) { + auto& layout = node->parent->data.as_group.layout; + + switch (layout) { + case Hy3GroupLayout::SplitH: + layout = Hy3GroupLayout::SplitV; + node->parent->recalcSizePosRecursive(); + break; + case Hy3GroupLayout::SplitV: + layout = Hy3GroupLayout::SplitH; + node->parent->recalcSizePosRecursive(); + break; + case Hy3GroupLayout::Tabbed: + break; + } + } + } + return ""; } diff --git a/src/SelectionHook.cpp b/src/SelectionHook.cpp index 13592f9..83ca2ba 100644 --- a/src/SelectionHook.cpp +++ b/src/SelectionHook.cpp @@ -35,7 +35,7 @@ void setup_selection_hook() { return; } - g_LastSelectionHook = HyprlandAPI::createFunctionHook(PHANDLE, decoUpdateCandidates[0].address, (void *)&hook_update_decos); + g_LastSelectionHook = HyprlandAPI::createFunctionHook(PHANDLE, decoUpdateCandidates[0].address, (void*)&hook_update_decos); } g_LastSelectionHook->hook();