summaryrefslogtreecommitdiff
path: root/src/layout/MasterLayout.cpp
diff options
context:
space:
mode:
authorZetta1 Reid0 <79805086+Zetta1Reid0@users.noreply.github.com>2025-01-07 19:50:34 +0200
committerGitHub <noreply@github.com>2025-01-07 17:50:34 +0000
commitc7086f936a06abebcc863c35f634760ca1ee90c0 (patch)
tree276ead2bbeb6c9971f814ab14347d986a0f829f0 /src/layout/MasterLayout.cpp
parentb9f110ef8726fcba2b4ee69856027731e73003a5 (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.cpp20
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) {