mirror of
https://codeberg.org/dnkl/foot.git
synced 2026-02-16 22:05:21 -05:00
render: don’t invert cursor colors when custom colors are being used
When the user has configured custom cursor colors (cursor.color is set in foot.ini), don’t invert those colors when the cell is either selected, or has the ‘reverse’ attribute set. This aligns foot’s behavior with Alacritty, Kitty and Wezterm. Contour also behaves similarly, except mouse selections override the cursor colors (turning the cursor invisible). Closes #1347
This commit is contained in:
parent
66df6fb2f6
commit
b3745b31c7
2 changed files with 8 additions and 11 deletions
|
|
@ -94,11 +94,16 @@
|
|||
([#1383][1383]).
|
||||
* `dpi-aware` now defaults to `no`, and the `auto` value has been
|
||||
removed.
|
||||
* When using custom cursor colors (`cursor.color` is set in
|
||||
`foot.ini`), the cursor is no longer inverted when the cell is
|
||||
selected, or when the cell has the `reverse` (SGR 7) attribute set
|
||||
([#1347][1347]).
|
||||
|
||||
[1371]: https://codeberg.org/dnkl/foot/pulls/1371
|
||||
[1183]: https://codeberg.org/dnkl/foot/issues/1183
|
||||
[1360]: https://codeberg.org/dnkl/foot/issues/1360
|
||||
[1383]: https://codeberg.org/dnkl/foot/issues/1383
|
||||
[1347]: https://codeberg.org/dnkl/foot/issues/1347
|
||||
|
||||
|
||||
### Deprecated
|
||||
|
|
|
|||
14
render.c
14
render.c
|
|
@ -405,19 +405,11 @@ cursor_colors_for_cell(const struct terminal *term, const struct cell *cell,
|
|||
const pixman_color_t *fg, const pixman_color_t *bg,
|
||||
pixman_color_t *cursor_color, pixman_color_t *text_color)
|
||||
{
|
||||
bool is_selected = cell->attrs.selected;
|
||||
|
||||
if (term->cursor_color.cursor >> 31) {
|
||||
*cursor_color = color_hex_to_pixman(term->cursor_color.cursor);
|
||||
*text_color = color_hex_to_pixman(
|
||||
term->cursor_color.text >> 31
|
||||
? term->cursor_color.text : term->colors.bg);
|
||||
xassert(term->cursor_color.text >> 31);
|
||||
|
||||
if (cell->attrs.reverse ^ is_selected) {
|
||||
pixman_color_t swap = *cursor_color;
|
||||
*cursor_color = *text_color;
|
||||
*text_color = swap;
|
||||
}
|
||||
*cursor_color = color_hex_to_pixman(term->cursor_color.cursor);
|
||||
*text_color = color_hex_to_pixman(term->cursor_color.text);
|
||||
} else {
|
||||
*cursor_color = *fg;
|
||||
*text_color = *bg;
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue