render: modify background color for highlighted text when fg == bg

When rendering a selected/highlighted cell where the foreground and
background colors are the same, invert the background color to make
the selected text legible.

Closes #455
This commit is contained in:
Daniel Eklöf 2021-04-23 21:30:47 +02:00
parent a614c8f7a2
commit 886160ba89
No known key found for this signature in database
GPG key ID: 5BBD4992C116573F
2 changed files with 9 additions and 0 deletions

View file

@ -33,6 +33,10 @@
* `generate-alt-random-writes.py --sixel`: width and height of emitted
sixels has been adjusted.
* _Concealed_ text (`\E[8m`) is now revealed when highlighted.
* The background color of highlighted text is now adjusted, when the
foreground and background colors are the same, making the
highlighted text legible
(https://codeberg.org/dnkl/foot/issues/455).
### Deprecated

View file

@ -443,6 +443,11 @@ render_cell(struct terminal *term, pixman_image_t *pix,
}
}
if (unlikely(is_selected && _fg == _bg)) {
/* Invert bg when selected/highlighted text has same fg/bg */
_bg = ~_bg;
}
if (cell->attrs.dim)
_fg = color_dim(_fg);
if (term->conf->bold_in_bright.enabled && cell->attrs.bold)