aboutsummaryrefslogtreecommitdiffstats
path: root/swaybar/main.c
diff options
context:
space:
mode:
authorLibravatar progandy <code@progandy>2015-12-22 17:54:38 +0100
committerLibravatar progandy <code@progandy>2015-12-22 17:54:38 +0100
commitd060d0a39f977cf4e74fe3d9a747ee717ad733ba (patch)
tree0d3ceafd2614e4a06b0ac624e73df7b76f79bb73 /swaybar/main.c
parentswaybar: Improve i3bar proto implementation (diff)
downloadsway-d060d0a39f977cf4e74fe3d9a747ee717ad733ba.tar.gz
sway-d060d0a39f977cf4e74fe3d9a747ee717ad733ba.tar.zst
sway-d060d0a39f977cf4e74fe3d9a747ee717ad733ba.zip
swaybar: add a visible separator between elements
Diffstat (limited to 'swaybar/main.c')
-rw-r--r--swaybar/main.c21
1 files changed, 17 insertions, 4 deletions
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() {
395 cairo_move_to(window->cairo, window->width - margin - width, margin); 395 cairo_move_to(window->cairo, window->width - margin - width, margin);
396 pango_printf(window, "%s", line); 396 pango_printf(window, "%s", line);
397 } else if (protocol == I3BAR && status_line) { 397 } else if (protocol == I3BAR && status_line) {
398 int i; 398 int i, blockpos;
399 int moved = 0; 399 int moved = 0;
400 bool corner = true;
400 for (i = status_line->length - 1; i >= 0; --i) { 401 for (i = status_line->length - 1; i >= 0; --i) {
401 struct status_block *block = status_line->items[i]; 402 struct status_block *block = status_line->items[i];
402 if (block->full_text) { 403 if (block->full_text && block->full_text[0]) {
403 get_text_size(window, &width, &height, "%s", block->full_text); 404 get_text_size(window, &width, &height, "%s", block->full_text);
404 moved += width + block->separator_block_width; 405 moved += width + block->separator_block_width;
405 cairo_move_to(window->cairo, window->width - margin - moved, margin); 406 blockpos = window->width - margin - moved;
407 cairo_move_to(window->cairo, blockpos, margin);
406 cairo_set_source_u32(window->cairo, block->color); 408 cairo_set_source_u32(window->cairo, block->color);
407 pango_printf(window, "%s", block->full_text); 409 pango_printf(window, "%s", block->full_text);
410 if (corner) {
411 corner = false;
412 } else if (block->separator) {
413 cairo_set_source_u32(window->cairo, colors.separator);
414 cairo_set_line_width(window->cairo, 1);
415 cairo_move_to(window->cairo, blockpos + width
416 + block->separator_block_width/2, margin);
417 cairo_line_to(window->cairo, blockpos + width
418 + block->separator_block_width/2, window->height - margin);
419 cairo_stroke(window->cairo);
420 }
408 } 421 }
409 } 422 }
410 } 423 }
@@ -512,7 +525,7 @@ void parse_json(const char *text) {
512 new->color = parse_color(json_object_get_string(color)); 525 new->color = parse_color(json_object_get_string(color));
513 } 526 }
514 else { 527 else {
515 new->color = 0xFFFFFFFF; 528 new->color = colors.statusline;
516 } 529 }
517 530
518 if (min_width) { 531 if (min_width) {