mirror of
https://codeberg.org/dnkl/foot.git
synced 2026-02-05 04:06:08 -05:00
Merge branch 'tweak-damage-everything' into master
This commit is contained in:
commit
e81d23befc
4 changed files with 27 additions and 2 deletions
4
config.c
4
config.c
|
|
@ -1361,6 +1361,9 @@ parse_section_tweak(
|
|||
if (strcmp(key, "allow-overflowing-double-width-glyphs") == 0)
|
||||
conf->tweak.allow_overflowing_double_width_glyphs = str_to_bool(value);
|
||||
|
||||
else if (strcmp(key, "damage-whole-window") == 0)
|
||||
conf->tweak.damage_whole_window = str_to_bool(value);
|
||||
|
||||
else if (strcmp(key, "render-timer") == 0) {
|
||||
if (strcmp(value, "none") == 0) {
|
||||
conf->tweak.render_timer_osd = false;
|
||||
|
|
@ -1801,6 +1804,7 @@ config_load(struct config *conf, const char *conf_path, bool errors_are_fatal)
|
|||
.max_shm_pool_size = 512 * 1024 * 1024,
|
||||
.render_timer_osd = false,
|
||||
.render_timer_log = false,
|
||||
.damage_whole_window = false,
|
||||
},
|
||||
|
||||
.notifications = tll_init(),
|
||||
|
|
|
|||
1
config.h
1
config.h
|
|
@ -147,6 +147,7 @@ struct config {
|
|||
bool allow_overflowing_double_width_glyphs;
|
||||
bool render_timer_osd;
|
||||
bool render_timer_log;
|
||||
bool damage_whole_window;
|
||||
uint64_t delayed_render_lower_ns;
|
||||
uint64_t delayed_render_upper_ns;
|
||||
off_t max_shm_pool_size;
|
||||
|
|
|
|||
|
|
@ -441,8 +441,8 @@ When reporting bugs, please mention if, and to what, you have changed
|
|||
any of these options.
|
||||
|
||||
*allow-overflowing-double-width-glyphs*
|
||||
When enabled, double width glyphs with a character width of 1 are
|
||||
allowed to overflow into the neighbouring cell.
|
||||
Boolean. when enabled, double width glyphs with a character width
|
||||
of 1 are allowed to overflow into the neighbouring cell.
|
||||
|
||||
One use case for this is fonts "icon" characters in the Unicode
|
||||
private usage area, e.g. Nerd Fonts, or Powerline Fonts. Without
|
||||
|
|
@ -528,6 +528,21 @@ any of these options.
|
|||
Default: lower=_500000_ (0.5ms), upper=_8333333_ (8.3ms - half a
|
||||
frame interval).
|
||||
|
||||
*damage-whole-window*
|
||||
Boolean. When enabled, foot will 'damage' the entire window each
|
||||
time a frame has been rendered. This forces the compositor to
|
||||
redraw the entire window. If disabled, foot will only 'damage'
|
||||
updated rows.
|
||||
|
||||
There is normally *no* reason to enable this. However, it has been
|
||||
seen to workaround an issue with _fractional scaling_ in _Gnome_.
|
||||
|
||||
Note that enabling this option is likely to increase CPU and/or
|
||||
GPU usage (by the compositor, not by foot), and may have a
|
||||
negative impact on battery life.
|
||||
|
||||
Default: _false_.
|
||||
|
||||
*max-shm-pool-size-mb*
|
||||
This option controls the amount of *virtual* memory used by the
|
||||
pixmap memory to which the terminal screen content is rendered.
|
||||
|
|
|
|||
5
render.c
5
render.c
|
|
@ -1819,6 +1819,11 @@ grid_render(struct terminal *term, bool redraw_margins)
|
|||
}
|
||||
}
|
||||
|
||||
if (term->conf->tweak.damage_whole_window) {
|
||||
wl_surface_damage_buffer(
|
||||
term->window->surface, 0, 0, INT32_MAX, INT32_MAX);
|
||||
}
|
||||
|
||||
wl_surface_attach(term->window->surface, buf->wl_buf, 0, 0);
|
||||
quirk_kde_damage_before_attach(term->window->surface);
|
||||
wl_surface_commit(term->window->surface);
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue