diff options
-rw-r--r-- | include/sway/config.h | 1 | ||||
-rw-r--r-- | sway/commands/font.c | 11 | ||||
-rw-r--r-- | sway/tree/container.c | 7 |
3 files changed, 15 insertions, 4 deletions
diff --git a/include/sway/config.h b/include/sway/config.h index fa40ef4e..a0e7e81f 100644 --- a/include/sway/config.h +++ b/include/sway/config.h | |||
@@ -305,6 +305,7 @@ struct sway_config { | |||
305 | enum sway_container_layout default_layout; | 305 | enum sway_container_layout default_layout; |
306 | char *font; | 306 | char *font; |
307 | size_t font_height; | 307 | size_t font_height; |
308 | bool pango_markup; | ||
308 | 309 | ||
309 | // Flags | 310 | // Flags |
310 | bool focus_follows_mouse; | 311 | bool focus_follows_mouse; |
diff --git a/sway/commands/font.c b/sway/commands/font.c index 8e0b51e3..3071ccd8 100644 --- a/sway/commands/font.c +++ b/sway/commands/font.c | |||
@@ -12,7 +12,16 @@ struct cmd_results *cmd_font(int argc, char **argv) { | |||
12 | } | 12 | } |
13 | char *font = join_args(argv, argc); | 13 | char *font = join_args(argv, argc); |
14 | free(config->font); | 14 | free(config->font); |
15 | config->font = strdup(font); | 15 | |
16 | if (strncmp(font, "pango:", 6) == 0) { | ||
17 | config->pango_markup = true; | ||
18 | config->font = strdup(font + 6); | ||
19 | } else { | ||
20 | config->pango_markup = false; | ||
21 | config->font = strdup(font); | ||
22 | } | ||
23 | |||
24 | free(font); | ||
16 | config_update_font_height(true); | 25 | config_update_font_height(true); |
17 | return cmd_results_new(CMD_SUCCESS, NULL, NULL); | 26 | return cmd_results_new(CMD_SUCCESS, NULL, NULL); |
18 | } | 27 | } |
diff --git a/sway/tree/container.c b/sway/tree/container.c index e1be32d1..38db29c2 100644 --- a/sway/tree/container.c +++ b/sway/tree/container.c | |||
@@ -580,7 +580,7 @@ static void update_title_texture(struct sway_container *con, | |||
580 | int height = config->font_height * scale; | 580 | int height = config->font_height * scale; |
581 | 581 | ||
582 | cairo_t *c = cairo_create(NULL); | 582 | cairo_t *c = cairo_create(NULL); |
583 | get_text_size(c, config->font, &width, NULL, scale, false, | 583 | get_text_size(c, config->font, &width, NULL, scale, config->pango_markup, |
584 | "%s", con->formatted_title); | 584 | "%s", con->formatted_title); |
585 | cairo_destroy(c); | 585 | cairo_destroy(c); |
586 | 586 | ||
@@ -596,7 +596,8 @@ static void update_title_texture(struct sway_container *con, | |||
596 | class->text[2], class->text[3]); | 596 | class->text[2], class->text[3]); |
597 | cairo_move_to(cairo, 0, 0); | 597 | cairo_move_to(cairo, 0, 0); |
598 | 598 | ||
599 | pango_printf(cairo, config->font, scale, false, "%s", con->formatted_title); | 599 | pango_printf(cairo, config->font, scale, config->pango_markup, |
600 | "%s", con->formatted_title); | ||
600 | 601 | ||
601 | cairo_surface_flush(surface); | 602 | cairo_surface_flush(surface); |
602 | unsigned char *data = cairo_image_surface_get_data(surface); | 603 | unsigned char *data = cairo_image_surface_get_data(surface); |
@@ -628,7 +629,7 @@ void container_calculate_title_height(struct sway_container *container) { | |||
628 | } | 629 | } |
629 | cairo_t *cairo = cairo_create(NULL); | 630 | cairo_t *cairo = cairo_create(NULL); |
630 | int height; | 631 | int height; |
631 | get_text_size(cairo, config->font, NULL, &height, 1, false, | 632 | get_text_size(cairo, config->font, NULL, &height, 1, config->pango_markup, |
632 | "%s", container->formatted_title); | 633 | "%s", container->formatted_title); |
633 | cairo_destroy(cairo); | 634 | cairo_destroy(cairo); |
634 | container->title_height = height; | 635 | container->title_height = height; |