config: use a packed bitfield for “use custom color” flags

This commit is contained in:
Daniel Eklöf 2021-02-06 10:35:48 +01:00
parent 0d17fd6a5d
commit fcbb5a0bf7
No known key found for this signature in database
GPG key ID: 5BBD4992C116573F
3 changed files with 9 additions and 4 deletions

View file

@ -2281,7 +2281,9 @@ config_load(struct config *conf, const char *conf_path,
.alpha = 0xffff,
.selection_fg = 0x80000000, /* Use default bg */
.selection_bg = 0x80000000, /* Use default fg */
.selection_uses_custom_colors = false,
.use_custom = {
.selection = false,
},
},
.cursor = {
@ -2378,7 +2380,7 @@ config_load(struct config *conf, const char *conf_path,
ret = parse_config_file(f, conf, conf_file.path, errors_are_fatal);
fclose(f);
conf->colors.selection_uses_custom_colors =
conf->colors.use_custom.selection =
conf->colors.selection_fg >> 24 == 0 &&
conf->colors.selection_bg >> 24 == 0;

View file

@ -139,7 +139,10 @@ struct config {
uint16_t alpha;
uint32_t selection_fg;
uint32_t selection_bg;
bool selection_uses_custom_colors;
struct {
bool selection:1;
} use_custom;
} colors;
struct {

View file

@ -412,7 +412,7 @@ render_cell(struct terminal *term, pixman_image_t *pix,
uint32_t _fg = 0;
uint32_t _bg = 0;
if (is_selected && term->conf->colors.selection_uses_custom_colors) {
if (is_selected && term->conf->colors.use_custom.selection) {
_fg = term->conf->colors.selection_fg;
_bg = term->conf->colors.selection_bg;
} else {