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();