mirror of
https://codeberg.org/dnkl/foot.git
synced 2026-02-13 04:27:47 -05:00
config: add scrollback.multiplier option
This option is used to multiply the mouse scroll amount for mouse and trackpad based scrollback scrolling. Closes #54.
This commit is contained in:
parent
93b03c91ed
commit
36468b0406
5 changed files with 22 additions and 2 deletions
|
|
@ -26,6 +26,8 @@
|
|||
**pipe-scrollback**, but only pipes the currently selected text, if
|
||||
any (https://codeberg.org/dnkl/foot/issues/51).
|
||||
* **cursor.hide-when-typing** option to `footrc.
|
||||
* **scrollback.multiplier** option to `footrc`
|
||||
(https://codeberg.org/dnkl/foot/issues/54).
|
||||
|
||||
|
||||
### Deprecated
|
||||
|
|
|
|||
12
config.c
12
config.c
|
|
@ -439,6 +439,17 @@ parse_section_scrollback(const char *key, const char *value, struct config *conf
|
|||
}
|
||||
}
|
||||
|
||||
else if (strcmp(key, "multiplier") == 0) {
|
||||
double multiplier;
|
||||
if (!str_to_double(value, &multiplier)) {
|
||||
LOG_AND_NOTIFY_ERR("%s:%d: [scrollback]: multiplier: "
|
||||
"invalid value: %s", path, lineno, value);
|
||||
return false;
|
||||
}
|
||||
|
||||
conf->scrollback.multiplier = multiplier;
|
||||
}
|
||||
|
||||
else {
|
||||
LOG_AND_NOTIFY_ERR("%s:%u: [scrollback]: %s: invalid key", path, lineno, key);
|
||||
return false;
|
||||
|
|
@ -1218,6 +1229,7 @@ config_load(struct config *conf, const char *conf_path, bool errors_are_fatal)
|
|||
.format = SCROLLBACK_INDICATOR_FORMAT_TEXT,
|
||||
.text = wcsdup(L""),
|
||||
},
|
||||
.multiplier = 1.,
|
||||
},
|
||||
.colors = {
|
||||
.fg = default_foreground,
|
||||
|
|
|
|||
1
config.h
1
config.h
|
|
@ -61,6 +61,7 @@ struct config {
|
|||
|
||||
wchar_t *text;
|
||||
} indicator;
|
||||
double multiplier;
|
||||
} scrollback;
|
||||
|
||||
struct {
|
||||
|
|
|
|||
|
|
@ -77,6 +77,10 @@ in this order:
|
|||
*lines*
|
||||
Number of scrollback lines. Default: _1000_.
|
||||
|
||||
*multiplier*
|
||||
Amount to multiply mouse scrolling with. It is a decimal number,
|
||||
i.e. fractions are allowed. Default: _1.0_.
|
||||
|
||||
*indicator-position*
|
||||
Configures the style of the scrollback position indicator. One of
|
||||
*none*, *fixed* or *relative*. *none* disables the indicator
|
||||
|
|
|
|||
5
input.c
5
input.c
|
|
@ -1544,7 +1544,8 @@ wl_pointer_axis(void *data, struct wl_pointer *wl_pointer,
|
|||
* Without this, very slow scrolling will never actually scroll
|
||||
* anything.
|
||||
*/
|
||||
seat->mouse.axis_aggregated += wl_fixed_to_double(value);
|
||||
seat->mouse.axis_aggregated
|
||||
+= seat->wayl->conf->scrollback.multiplier * wl_fixed_to_double(value);
|
||||
|
||||
if (fabs(seat->mouse.axis_aggregated) >= 1.) {
|
||||
mouse_scroll(seat, round(seat->mouse.axis_aggregated));
|
||||
|
|
@ -1561,7 +1562,7 @@ wl_pointer_axis_discrete(void *data, struct wl_pointer *wl_pointer,
|
|||
|
||||
struct seat *seat = data;
|
||||
seat->mouse.have_discrete = true;
|
||||
mouse_scroll(seat, discrete);
|
||||
mouse_scroll(seat, seat->wayl->conf->scrollback.multiplier * discrete);
|
||||
}
|
||||
|
||||
static void
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue