From 7ce92f93ad4d975396e273c30ba8e345cca379ee Mon Sep 17 00:00:00 2001 From: hillyu Date: Mon, 6 Mar 2023 00:29:23 +0800 Subject: [PATCH] add mfact setting for master layout (#1666) * add mfact setting for master layout --------- Co-authored-by: Hill --- src/config/ConfigManager.cpp | 1 + src/layout/MasterLayout.cpp | 5 +++-- 2 files changed, 4 insertions(+), 2 deletions(-) diff --git a/src/config/ConfigManager.cpp b/src/config/ConfigManager.cpp index 6133f41f..1583985b 100644 --- a/src/config/ConfigManager.cpp +++ b/src/config/ConfigManager.cpp @@ -124,6 +124,7 @@ void CConfigManager::setDefaultVars() { configValues["dwindle:use_active_for_splits"].intValue = 1; configValues["master:special_scale_factor"].floatValue = 0.8f; + configValues["master:mfact"].floatValue = 0.55f; configValues["master:new_is_master"].intValue = 1; configValues["master:always_center_master"].intValue = 0; configValues["master:new_on_top"].intValue = 0; diff --git a/src/layout/MasterLayout.cpp b/src/layout/MasterLayout.cpp index 36169f03..f62d1add 100644 --- a/src/layout/MasterLayout.cpp +++ b/src/layout/MasterLayout.cpp @@ -84,7 +84,8 @@ void CHyprMasterLayout::onWindowCreatedTiling(CWindow* pWindow) { static auto* const PNEWISMASTER = &g_pConfigManager->getConfigValuePtr("master:new_is_master")->intValue; const auto WINDOWSONWORKSPACE = getNodesOnWorkspace(PNODE->workspaceID); - float lastSplitPercent = 0.5f; + static auto* const PMFACT = &g_pConfigManager->getConfigValuePtr("master:mfact")->floatValue; + float lastSplitPercent = *PMFACT; auto OPENINGON = isWindowTiled(g_pCompositor->m_pLastWindow) && g_pCompositor->m_pLastWindow->m_iWorkspaceID == pWindow->m_iWorkspaceID ? getNodeFromWindow(g_pCompositor->m_pLastWindow) : @@ -256,7 +257,7 @@ void CHyprMasterLayout::calculateWorkspace(const int& ws) { if (getNodesOnWorkspace(PWORKSPACE->m_iID) < 2 && !centerMasterWindow) { PMASTERNODE->position = PMONITOR->vecReservedTopLeft + PMONITOR->vecPosition; PMASTERNODE->size = Vector2D(PMONITOR->vecSize.x - PMONITOR->vecReservedTopLeft.x - PMONITOR->vecReservedBottomRight.x, - PMONITOR->vecSize.y - PMONITOR->vecReservedBottomRight.y - PMONITOR->vecReservedTopLeft.y); + PMONITOR->vecSize.y - PMONITOR->vecReservedBottomRight.y - PMONITOR->vecReservedTopLeft.y); applyNodeDataToWindow(PMASTERNODE); return; } else if (orientation == ORIENTATION_LEFT || orientation == ORIENTATION_RIGHT) {