render: cursor: improve handling of fg == bg

We already detect if the final cursor colors (foreground/background)
are identical.

If they were, we replaced them with the default fg/bg.

Unfortunately, this can still result in an invisible cursor. For
example, if the current cell's default bg matches the current cell's
fg.

Instead, update the colors in two steps:

1. First, use the provided (cell's) fg/bg
2. If they too match, invert the cursor color

This should ensure the cursor is always visible

Closes #2323
This commit is contained in:
Daniel Eklöf 2026-05-11 14:14:46 +02:00
parent a2476536f9
commit cc6b29fe3a
No known key found for this signature in database
GPG key ID: 5BBD4992C116573F
2 changed files with 20 additions and 5 deletions

View file

@ -83,6 +83,12 @@
* URL underlines are now dotted by default, instead of plain
underlines. This can be changed with the new `url.style` option.
* If the cursor foreground and background colors are identical, use
the current cell's foreground and background colors (inverted),
instead of the default foreground and background colors
([#2323][2323]).
[2323]: https://codeberg.org/dnkl/foot/issues/2323
### Deprecated