diff options
author | Ryan Dwyer <ryandwyer1@gmail.com> | 2018-09-08 16:19:31 +1000 |
---|---|---|
committer | Ryan Dwyer <ryandwyer1@gmail.com> | 2018-09-08 16:25:07 +1000 |
commit | 9215ca0f01f7d155191d11fd9caa2574387c6f84 (patch) | |
tree | a1defcadae4b1d07388fd9e6bfe2a09051aec777 /sway/tree/container.c | |
parent | Fix gaps in title textures and vertically center them (diff) | |
download | sway-9215ca0f01f7d155191d11fd9caa2574387c6f84.tar.gz sway-9215ca0f01f7d155191d11fd9caa2574387c6f84.tar.zst sway-9215ca0f01f7d155191d11fd9caa2574387c6f84.zip |
Align titles to baseline
This does the following:
* Adds a baseline argument to get_text_size (the baseline is the
distance from the top of the texture to the baseline).
* Stores the baseline in the container when calculating the title
height.
* Takes the baseline into account when calculating the config's max font
height.
* When rendering, pads the textures according to the baseline so they
line up.
Diffstat (limited to 'sway/tree/container.c')
-rw-r--r-- | sway/tree/container.c | 10 |
1 files changed, 6 insertions, 4 deletions
diff --git a/sway/tree/container.c b/sway/tree/container.c index cbbb1f56..ccd79f0e 100644 --- a/sway/tree/container.c +++ b/sway/tree/container.c | |||
@@ -455,8 +455,8 @@ static void update_title_texture(struct sway_container *con, | |||
455 | int height = con->title_height * scale; | 455 | int height = con->title_height * scale; |
456 | 456 | ||
457 | cairo_t *c = cairo_create(NULL); | 457 | cairo_t *c = cairo_create(NULL); |
458 | get_text_size(c, config->font, &width, NULL, scale, config->pango_markup, | 458 | get_text_size(c, config->font, &width, NULL, NULL, scale, |
459 | "%s", con->formatted_title); | 459 | config->pango_markup, "%s", con->formatted_title); |
460 | cairo_destroy(c); | 460 | cairo_destroy(c); |
461 | 461 | ||
462 | cairo_surface_t *surface = cairo_image_surface_create( | 462 | cairo_surface_t *surface = cairo_image_surface_create( |
@@ -505,10 +505,12 @@ void container_calculate_title_height(struct sway_container *container) { | |||
505 | } | 505 | } |
506 | cairo_t *cairo = cairo_create(NULL); | 506 | cairo_t *cairo = cairo_create(NULL); |
507 | int height; | 507 | int height; |
508 | get_text_size(cairo, config->font, NULL, &height, 1, config->pango_markup, | 508 | int baseline; |
509 | "%s", container->formatted_title); | 509 | get_text_size(cairo, config->font, NULL, &height, &baseline, 1, |
510 | config->pango_markup, "%s", container->formatted_title); | ||
510 | cairo_destroy(cairo); | 511 | cairo_destroy(cairo); |
511 | container->title_height = height; | 512 | container->title_height = height; |
513 | container->title_baseline = baseline; | ||
512 | } | 514 | } |
513 | 515 | ||
514 | /** | 516 | /** |