From 97f9f0b699316ba60009b395948a712ec0b671d2 Mon Sep 17 00:00:00 2001 From: Brian Ashworth Date: Fri, 27 Dec 2019 23:33:55 -0500 Subject: parse_color: return success + drop fallback color This is the first in a series of commits to refactor the color handling in sway. This changes parse_color to return whether it was success and no longer uses 0xFFFFFFFF as the fallback color. This also verifies that the string actually contains a valid hexadecimal number along with the length checks. In the process of altering the calls to parse_color, I also took the opportunity to heavily refactor swaybar's ipc_parse_colors function. This allowed for several lines of duplicated code to be removed. --- swaybar/render.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'swaybar/render.c') diff --git a/swaybar/render.c b/swaybar/render.c index 0d6bb354..06efb53c 100644 --- a/swaybar/render.c +++ b/swaybar/render.c @@ -265,7 +265,7 @@ static uint32_t render_status_block(cairo_t *cairo, } double text_y = height / 2.0 - text_height / 2.0; cairo_move_to(cairo, offset, (int)floor(text_y)); - uint32_t color = block->color ? *block->color : config->colors.statusline; + uint32_t color = block->color_set ? block->color : config->colors.statusline; color = block->urgent ? config->colors.urgent_workspace.text : color; cairo_set_source_u32(cairo, color); pango_printf(cairo, config->font, output->scale, -- cgit v1.2.3