Merge pull request #1636 from jrouleau/master

swaybar: correctly render min_width for strings
This commit is contained in:
Drew DeVault 2018-03-27 08:36:29 -04:00 committed by GitHub
commit ef169fcaeb
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
3 changed files with 9 additions and 2 deletions

View file

@ -17,7 +17,7 @@ struct status_line {
};
struct status_block {
char *full_text, *short_text, *align;
char *full_text, *short_text, *align, *min_width_str;
bool urgent;
uint32_t color;
int min_width;

View file

@ -61,6 +61,13 @@ static void render_block(struct window *window, struct config *config, struct st
int textwidth = width;
double block_width = width;
if (block->min_width_str) {
int w, h;
get_text_size(window->cairo, window->font, &w, &h,
window->scale, block->markup, "%s", block->min_width_str);
block->min_width = w;
}
if (width < block->min_width) {
width = block->min_width;
}

View file

@ -121,7 +121,7 @@ static void parse_json(struct bar *bar, const char *text) {
new->min_width = json_object_get_int(min_width);
} else if (type == json_type_string) {
/* the width will be calculated when rendering */
new->min_width = 0;
new->min_width_str = strdup(json_object_get_string(min_width));
}
}