diff --git a/CHANGELOG.md b/CHANGELOG.md index 39c95231..12bac7be 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -84,8 +84,14 @@ In other words, if, after this change, `XTGETTCAP` returns a string that is different compared to `tigetstr()`, then it is likely a bug in foot's implementation of `XTGETTCAP`. +* If the cursor foreground and background colors are identical (for + example, when cursor uses inverted colors and the cell's foreground + and background are the same), the cursor will instead be rendered + using the default foreground and background colors, inverted + ([#1761][1761]). [1701]: https://codeberg.org/dnkl/foot/issues/1701 +[1761]: https://codeberg.org/dnkl/foot/issues/1761 ### Deprecated diff --git a/render.c b/render.c index 2f18ff88..fd078184 100644 --- a/render.c +++ b/render.c @@ -573,6 +573,14 @@ cursor_colors_for_cell(const struct terminal *term, const struct cell *cell, *text_color = color_hex_to_pixman(term->colors.bg); } } + + if (text_color->red == cursor_color->red && + text_color->green == cursor_color->green && + text_color->blue == cursor_color->blue) + { + *text_color = color_hex_to_pixman(term->colors.bg); + *cursor_color = color_hex_to_pixman(term->colors.fg); + } } static void