selection: store cell 'selected' state in the cells' attributes

Instead of having the renderer calculate, for each cell, whether that
cell is currently selected or not, make selection_update() mark/unmark
the selected cells.

The renderer now only has to look at the cells' 'selected'
attribute. This makes the renderer both smaller and faster.
This commit is contained in:
Daniel Eklöf 2020-01-04 12:03:04 +01:00
parent cb9ae4f6a1
commit f12b1473fd
No known key found for this signature in database
GPG key ID: 5BBD4992C116573F
3 changed files with 129 additions and 78 deletions

View file

@ -41,7 +41,8 @@ struct attributes {
uint32_t clean:1;
uint32_t have_fg:1;
uint32_t have_bg:1;
uint32_t reserved:5;
uint32_t selected:1;
uint32_t reserved:4;
uint32_t bg:24;
};
static_assert(sizeof(struct attributes) == 8, "bad size");