Added cycling both ways for switch_proportion_preset

Now switch_proportion_preset requires an argument "prev" or "next" to
determine cycle direction
This commit is contained in:
kanvolu 2026-03-06 22:23:59 -05:00 committed by DreamMaoMao
parent b1875f4663
commit 6438edc2b7
3 changed files with 24 additions and 8 deletions

View file

@ -928,6 +928,7 @@ FuncType parse_func_name(char *func_name, Arg *arg, char *arg_value,
(*arg).f = atof(arg_value); (*arg).f = atof(arg_value);
} else if (strcmp(func_name, "switch_proportion_preset") == 0) { } else if (strcmp(func_name, "switch_proportion_preset") == 0) {
func = switch_proportion_preset; func = switch_proportion_preset;
(*arg).i = parse_circle_direction(arg_value);
} else if (strcmp(func_name, "viewtoleft") == 0) { } else if (strcmp(func_name, "viewtoleft") == 0) {
func = viewtoleft; func = viewtoleft;
(*arg).i = atoi(arg_value); (*arg).i = atoi(arg_value);

View file

@ -1057,13 +1057,28 @@ int32_t switch_proportion_preset(const Arg *arg) {
for (int32_t i = 0; i < config.scroller_proportion_preset_count; i++) { for (int32_t i = 0; i < config.scroller_proportion_preset_count; i++) {
if (config.scroller_proportion_preset[i] == if (config.scroller_proportion_preset[i] ==
tc->scroller_proportion) { tc->scroller_proportion) {
if (i == config.scroller_proportion_preset_count - 1) {
target_proportion = config.scroller_proportion_preset[0]; if (arg->i == NEXT) {
break; if (i == config.scroller_proportion_preset_count - 1) {
target_proportion =
config.scroller_proportion_preset[0];
break;
} else {
target_proportion =
config.scroller_proportion_preset[i + 1];
break;
}
} else { } else {
target_proportion = if (i == 0) {
config.scroller_proportion_preset[i + 1]; target_proportion =
break; config.scroller_proportion_preset
[config.scroller_proportion_preset_count - 1];
break;
} else {
target_proportion =
config.scroller_proportion_preset[i - 1];
break;
}
} }
} }
} }