master: Change center_master_slaves_on_right to center_master_fallback (#10201)

* Change center_master_slaves_on_right  to center_master_fallback
This commit is contained in:
Zetta1 Reid0 2025-05-01 14:29:06 +03:00 committed by GitHub
parent 615e0dae46
commit b5ef049ea1
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
3 changed files with 17 additions and 13 deletions

View file

@ -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",

View file

@ -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});

View file

@ -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) {