From d060d0a39f977cf4e74fe3d9a747ee717ad733ba Mon Sep 17 00:00:00 2001 From: progandy Date: Tue, 22 Dec 2015 17:54:38 +0100 Subject: swaybar: add a visible separator between elements --- swaybar/main.c | 21 +++++++++++++++++---- 1 file changed, 17 insertions(+), 4 deletions(-) (limited to 'swaybar/main.c') diff --git a/swaybar/main.c b/swaybar/main.c index 1ad5b1cd..a4b757a5 100644 --- a/swaybar/main.c +++ b/swaybar/main.c @@ -395,16 +395,29 @@ void render() { cairo_move_to(window->cairo, window->width - margin - width, margin); pango_printf(window, "%s", line); } else if (protocol == I3BAR && status_line) { - int i; + int i, blockpos; int moved = 0; + bool corner = true; for (i = status_line->length - 1; i >= 0; --i) { struct status_block *block = status_line->items[i]; - if (block->full_text) { + if (block->full_text && block->full_text[0]) { get_text_size(window, &width, &height, "%s", block->full_text); moved += width + block->separator_block_width; - cairo_move_to(window->cairo, window->width - margin - moved, margin); + blockpos = window->width - margin - moved; + cairo_move_to(window->cairo, blockpos, margin); cairo_set_source_u32(window->cairo, block->color); pango_printf(window, "%s", block->full_text); + if (corner) { + corner = false; + } else if (block->separator) { + cairo_set_source_u32(window->cairo, colors.separator); + cairo_set_line_width(window->cairo, 1); + cairo_move_to(window->cairo, blockpos + width + + block->separator_block_width/2, margin); + cairo_line_to(window->cairo, blockpos + width + + block->separator_block_width/2, window->height - margin); + cairo_stroke(window->cairo); + } } } } @@ -512,7 +525,7 @@ void parse_json(const char *text) { new->color = parse_color(json_object_get_string(color)); } else { - new->color = 0xFFFFFFFF; + new->color = colors.statusline; } if (min_width) { -- cgit v1.2.3-70-g09d2