summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorZetta1 Reid0 <79805086+Zetta1Reid0@users.noreply.github.com>2025-05-01 14:29:06 +0300
committerGitHub <noreply@github.com>2025-05-01 13:29:06 +0200
commitb5ef049ea153e476057987ef11ccbdbbfb655c15 (patch)
treea9e1b3c11baa5870b88fd9ea48bafb0d20625cef /src
parent615e0dae46211ea0a7f35193321d65b348c04aa7 (diff)
master: Change center_master_slaves_on_right to center_master_fallback (#10201)
* Change center_master_slaves_on_right to center_master_fallback
Diffstat (limited to 'src')
-rw-r--r--src/config/ConfigDescriptions.hpp10
-rw-r--r--src/config/ConfigManager.cpp2
-rw-r--r--src/layout/MasterLayout.cpp18
3 files changed, 17 insertions, 13 deletions
diff --git a/src/config/ConfigDescriptions.hpp b/src/config/ConfigDescriptions.hpp
index 39c1b522..9214772d 100644
--- a/src/config/ConfigDescriptions.hpp
+++ b/src/config/ConfigDescriptions.hpp
@@ -1811,12 +1811,10 @@ inline static const std::vector<SConfigOptionDescription> CONFIG_OPTIONS = {
.type = CONFIG_OPTION_INT,
.data = SConfigOptionDescription::SRangeData{2, 0, 10}, //##TODO RANGE?
},
- SConfigOptionDescription{
- .value = "master:center_master_slaves_on_right",
- .description = "set if the slaves should appear on right of master when slave_count_for_center_master > 2",
- .type = CONFIG_OPTION_BOOL,
- .data = SConfigOptionDescription::SBoolData{true},
- },
+ SConfigOptionDescription{.value = "master:center_master_fallback",
+ .description = "Set fallback for center master when slaves are less than slave_count_for_center_master, can be left ,right ,top ,bottom",
+ .type = CONFIG_OPTION_STRING_SHORT,
+ .data = SConfigOptionDescription::SStringData{"left"}},
SConfigOptionDescription{
.value = "master:center_ignores_reserved",
.description = "centers the master window on monitor ignoring reserved areas",
diff --git a/src/config/ConfigManager.cpp b/src/config/ConfigManager.cpp
index f84b868f..ea79f614 100644
--- a/src/config/ConfigManager.cpp
+++ b/src/config/ConfigManager.cpp
@@ -597,7 +597,7 @@ CConfigManager::CConfigManager() {
registerConfigVar("master:mfact", {0.55f});
registerConfigVar("master:new_status", {"slave"});
registerConfigVar("master:slave_count_for_center_master", Hyprlang::INT{2});
- registerConfigVar("master:center_master_slaves_on_right", Hyprlang::INT{1});
+ registerConfigVar("master:center_master_fallback", {"left"});
registerConfigVar("master:center_ignores_reserved", Hyprlang::INT{0});
registerConfigVar("master:new_on_active", {"none"});
registerConfigVar("master:new_on_top", Hyprlang::INT{0});
diff --git a/src/layout/MasterLayout.cpp b/src/layout/MasterLayout.cpp
index e50b926e..d2aa7568 100644
--- a/src/layout/MasterLayout.cpp
+++ b/src/layout/MasterLayout.cpp
@@ -333,7 +333,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 CMFALLBACK = CConfigValue<std::string>("master:center_master_fallback");
static auto PIGNORERESERVED = CConfigValue<Hyprlang::INT>("master:center_ignores_reserved");
static auto PSMARTRESIZING = CConfigValue<Hyprlang::INT>("master:smart_resizing");
@@ -347,10 +347,16 @@ void CHyprMasterLayout::calculateWorkspace(PHLWORKSPACE pWorkspace) {
if (STACKWINDOWS >= *SLAVECOUNTFORCENTER) {
centerMasterWindow = true;
} else {
- if (*CMSLAVESONRIGHT)
+ if (*CMFALLBACK == "left")
orientation = ORIENTATION_LEFT;
- else
+ else if (*CMFALLBACK == "right")
orientation = ORIENTATION_RIGHT;
+ else if (*CMFALLBACK == "top")
+ orientation = ORIENTATION_TOP;
+ else if (*CMFALLBACK == "bottom")
+ orientation = ORIENTATION_BOTTOM;
+ else
+ orientation = ORIENTATION_LEFT;
}
}
@@ -538,11 +544,11 @@ void CHyprMasterLayout::calculateWorkspace(PHLWORKSPACE pWorkspace) {
float nextY = 0;
float nextYL = 0;
float nextYR = 0;
- bool onRight = *CMSLAVESONRIGHT;
+ bool onRight = *CMFALLBACK == "right";
int slavesLeftL = 1 + (slavesLeft - 1) / 2;
int slavesLeftR = slavesLeft - slavesLeftL;
- if (*CMSLAVESONRIGHT) {
+ if (onRight) {
slavesLeftR = 1 + (slavesLeft - 1) / 2;
slavesLeftL = slavesLeft - slavesLeftR;
}
@@ -565,7 +571,7 @@ void CHyprMasterLayout::calculateWorkspace(PHLWORKSPACE pWorkspace) {
onRight = !onRight;
}
- onRight = *CMSLAVESONRIGHT;
+ onRight = *CMFALLBACK == "right";
}
for (auto& nd : m_masterNodesData) {