osc: extend damage-cells-by-color to default fg/bg as well

When changing part of the color palette, through either OSC-4, or
OSC-10 and OSC-11 (and the corresponding reset OSCs: 104, 110 and
111), only dirty affected cells.

We've always done this, but only for OSC-4.

This patch breaks out that logic, and extends it to handle default
fg/bg too.

It also fixes a bug where cells with colored underlines were not
dirtied if the underline was the only part of the cell that was
affected by a OSC-4 change.
This commit is contained in:
Daniel Eklöf 2024-07-03 10:53:33 +02:00
parent e5ed387426
commit 22c8637610
No known key found for this signature in database
GPG key ID: 5BBD4992C116573F
4 changed files with 102 additions and 51 deletions

View file

@ -845,6 +845,7 @@ void term_damage_view(struct terminal *term);
void term_damage_cursor(struct terminal *term);
void term_damage_margins(struct terminal *term);
void term_damage_color(struct terminal *term, enum color_source src, int idx);
void term_reset_view(struct terminal *term);