summaryrefslogtreecommitdiff
path: root/src/managers/LayoutManager.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/managers/LayoutManager.cpp')
-rw-r--r--src/managers/LayoutManager.cpp20
1 files changed, 20 insertions, 0 deletions
diff --git a/src/managers/LayoutManager.cpp b/src/managers/LayoutManager.cpp
index ec723350..8e7e397b 100644
--- a/src/managers/LayoutManager.cpp
+++ b/src/managers/LayoutManager.cpp
@@ -4,8 +4,28 @@ IHyprLayout* CLayoutManager::getCurrentLayout() {
switch (m_iCurrentLayoutID) {
case DWINDLE:
return &m_cDwindleLayout;
+ case MASTER:
+ return &m_cMasterLayout;
}
// fallback
return &m_cDwindleLayout;
+}
+
+void CLayoutManager::switchToLayout(std::string layout) {
+ if (layout == "dwindle") {
+ if (m_iCurrentLayoutID != DWINDLE) {
+ getCurrentLayout()->onDisable();
+ m_iCurrentLayoutID = DWINDLE;
+ getCurrentLayout()->onEnable();
+ }
+ } else if (layout == "master") {
+ if (m_iCurrentLayoutID != MASTER) {
+ getCurrentLayout()->onDisable();
+ m_iCurrentLayoutID = MASTER;
+ getCurrentLayout()->onEnable();
+ }
+ } else {
+ Debug::log(ERR, "Unknown layout %s!", layout.c_str());
+ }
} \ No newline at end of file