aboutsummaryrefslogtreecommitdiffstats
path: root/sway/tree/container.c
diff options
context:
space:
mode:
authorLibravatar Ryan Dwyer <ryandwyer1@gmail.com>2018-09-08 16:19:31 +1000
committerLibravatar Ryan Dwyer <ryandwyer1@gmail.com>2018-09-08 16:25:07 +1000
commit9215ca0f01f7d155191d11fd9caa2574387c6f84 (patch)
treea1defcadae4b1d07388fd9e6bfe2a09051aec777 /sway/tree/container.c
parentFix gaps in title textures and vertically center them (diff)
downloadsway-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.c10
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/**