diff options
| author | Zetta1 Reid0 <79805086+Zetta1Reid0@users.noreply.github.com> | 2025-01-07 19:50:34 +0200 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2025-01-07 17:50:34 +0000 |
| commit | c7086f936a06abebcc863c35f634760ca1ee90c0 (patch) | |
| tree | 276ead2bbeb6c9971f814ab14347d986a0f829f0 /src/layout/MasterLayout.cpp | |
| parent | b9f110ef8726fcba2b4ee69856027731e73003a5 (diff) | |
master: add option to show slaves on left in center orientation (#8940)
Co-authored-by: Zetta1_Reid0 <11255-Zetta1_Reid0@users.noreply.gitlab.xfce.org>
Diffstat (limited to 'src/layout/MasterLayout.cpp')
| -rw-r--r-- | src/layout/MasterLayout.cpp | 20 |
1 files changed, 15 insertions, 5 deletions
diff --git a/src/layout/MasterLayout.cpp b/src/layout/MasterLayout.cpp index fb7df84f..225246f0 100644 --- a/src/layout/MasterLayout.cpp +++ b/src/layout/MasterLayout.cpp @@ -328,6 +328,7 @@ void CHyprMasterLayout::calculateWorkspace(PHLWORKSPACE pWorkspace) { eOrientation orientation = getDynamicOrientation(pWorkspace); bool centerMasterWindow = false; static auto SLAVECOUNTFORCENTER = CConfigValue<Hyprlang::INT>("master:slave_count_for_center_master"); + static auto CMSLAVESONRIGHT = CConfigValue<Hyprlang::INT>("master:center_master_slaves_on_right"); static auto PIGNORERESERVED = CConfigValue<Hyprlang::INT>("master:center_ignores_reserved"); static auto PSMARTRESIZING = CConfigValue<Hyprlang::INT>("master:smart_resizing"); @@ -341,7 +342,10 @@ void CHyprMasterLayout::calculateWorkspace(PHLWORKSPACE pWorkspace) { if (STACKWINDOWS >= *SLAVECOUNTFORCENTER) { centerMasterWindow = true; } else { - orientation = ORIENTATION_LEFT; + if (*CMSLAVESONRIGHT) + orientation = ORIENTATION_LEFT; + else + orientation = ORIENTATION_RIGHT; } } @@ -515,15 +519,20 @@ void CHyprMasterLayout::calculateWorkspace(PHLWORKSPACE pWorkspace) { float nextY = 0; float nextYL = 0; float nextYR = 0; - bool onRight = true; + bool onRight = *CMSLAVESONRIGHT; + int slavesLeftL = 1 + (slavesLeft - 1) / 2; + int slavesLeftR = slavesLeft - slavesLeftL; - int slavesLeftR = 1 + (slavesLeft - 1) / 2; - int slavesLeftL = slavesLeft - slavesLeftR; + if (*CMSLAVESONRIGHT) { + slavesLeftR = 1 + (slavesLeft - 1) / 2; + slavesLeftL = slavesLeft - slavesLeftR; + } const float slaveAverageHeightL = WSSIZE.y / slavesLeftL; const float slaveAverageHeightR = WSSIZE.y / slavesLeftR; float slaveAccumulatedHeightL = 0; float slaveAccumulatedHeightR = 0; + if (*PSMARTRESIZING) { for (auto const& nd : m_lMasterNodesData) { if (nd.workspaceID != pWorkspace->m_iID || nd.isMaster) @@ -536,7 +545,8 @@ void CHyprMasterLayout::calculateWorkspace(PHLWORKSPACE pWorkspace) { } onRight = !onRight; } - onRight = true; + + onRight = *CMSLAVESONRIGHT; } for (auto& nd : m_lMasterNodesData) { |
