From 9215ca0f01f7d155191d11fd9caa2574387c6f84 Mon Sep 17 00:00:00 2001 From: Ryan Dwyer Date: Sat, 8 Sep 2018 16:19:31 +1000 Subject: 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. --- sway/tree/container.c | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) (limited to 'sway/tree/container.c') 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, int height = con->title_height * scale; cairo_t *c = cairo_create(NULL); - get_text_size(c, config->font, &width, NULL, scale, config->pango_markup, - "%s", con->formatted_title); + get_text_size(c, config->font, &width, NULL, NULL, scale, + config->pango_markup, "%s", con->formatted_title); cairo_destroy(c); cairo_surface_t *surface = cairo_image_surface_create( @@ -505,10 +505,12 @@ void container_calculate_title_height(struct sway_container *container) { } cairo_t *cairo = cairo_create(NULL); int height; - get_text_size(cairo, config->font, NULL, &height, 1, config->pango_markup, - "%s", container->formatted_title); + int baseline; + get_text_size(cairo, config->font, NULL, &height, &baseline, 1, + config->pango_markup, "%s", container->formatted_title); cairo_destroy(cairo); container->title_height = height; + container->title_baseline = baseline; } /** -- cgit v1.2.3-54-g00ecf