mirror of
https://codeberg.org/dnkl/foot.git
synced 2026-03-04 01:40:21 -05:00
term: track cell color source
Each cell now tracks it’s current color source: * default fg/bg * base16 fg/bg (maps to *both* the regular and bright colors) * base256 fg/bg * RGB Note that we don’t have enough bits to separate the regular from the bright colors. These _shouldn’t_ be the same, so we ought to be fine...
This commit is contained in:
parent
37b82efa77
commit
d46af6bd7a
6 changed files with 34 additions and 26 deletions
|
|
@ -1770,11 +1770,13 @@ erase_cell_range(struct terminal *term, struct row *row, int start, int end)
|
|||
|
||||
row->dirty = true;
|
||||
|
||||
if (unlikely(term->vt.attrs.have_bg)) {
|
||||
const enum color_source bg_src = term->vt.attrs.bg_src;
|
||||
|
||||
if (unlikely(bg_src != COLOR_DEFAULT)) {
|
||||
for (int col = start; col <= end; col++) {
|
||||
struct cell *c = &row->cells[col];
|
||||
c->wc = 0;
|
||||
c->attrs = (struct attributes){.have_bg = 1, .bg = term->vt.attrs.bg};
|
||||
c->attrs = (struct attributes){.bg_src = bg_src, .bg = term->vt.attrs.bg};
|
||||
}
|
||||
} else
|
||||
memset(&row->cells[start], 0, (end - start + 1) * sizeof(row->cells[0]));
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue