38f7b4f0951ea4738e128ab53f77a579f21c9b4a

Author
outfoxxed <outfoxxed@outfoxxed.me>
Committer
outfoxxed <outfoxxed@outfoxxed.me>
Date

Message

Add togglesplit

Diff

 1diff --git a/src/Hy3Layout.cpp b/src/Hy3Layout.cpp
 2index eb7cdb85db1227155185b7a9959b1f45ad8f6f6d..3e3b303870cdb5a5a61869d75ae2b985c85e16b2 100644
 3--- a/src/Hy3Layout.cpp
 4+++ b/src/Hy3Layout.cpp
 5@@ -959,6 +959,26 @@ void Hy3Layout::fullscreenRequestForWindow(CWindow* window, eFullscreenMode full
 6 }
 7 
 8 std::any Hy3Layout::layoutMessage(SLayoutMessageHeader header, std::string content) {
 9+	if (content == "togglesplit") {
10+		auto* node = this->getNodeFromWindow(header.pWindow);
11+		if (node != nullptr && node->parent != nullptr) {
12+			auto& layout = node->parent->data.as_group.layout;
13+
14+			switch (layout) {
15+			case Hy3GroupLayout::SplitH:
16+			  layout = Hy3GroupLayout::SplitV;
17+				node->parent->recalcSizePosRecursive();
18+				break;
19+			case Hy3GroupLayout::SplitV:
20+				layout = Hy3GroupLayout::SplitH;
21+				node->parent->recalcSizePosRecursive();
22+				break;
23+			case Hy3GroupLayout::Tabbed:
24+				break;
25+			}
26+		}
27+	}
28+
29 	return "";
30 }
31 
32diff --git a/src/SelectionHook.cpp b/src/SelectionHook.cpp
33index 13592f9cc70e1384b6f73a90d99131c024b83c55..83ca2baa2aab392fededc4c23d983320d11fd41b 100644
34--- a/src/SelectionHook.cpp
35+++ b/src/SelectionHook.cpp
36@@ -35,7 +35,7 @@ void setup_selection_hook() {
37 			return;
38 		}
39 
40-		g_LastSelectionHook = HyprlandAPI::createFunctionHook(PHANDLE, decoUpdateCandidates[0].address, (void *)&hook_update_decos);
41+		g_LastSelectionHook = HyprlandAPI::createFunctionHook(PHANDLE, decoUpdateCandidates[0].address, (void*)&hook_update_decos);
42 	}
43 
44 	g_LastSelectionHook->hook();