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/desktop/render.c | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) (limited to 'sway/desktop') diff --git a/sway/desktop/render.c b/sway/desktop/render.c index ecac262e..8a6f63aa 100644 --- a/sway/desktop/render.c +++ b/sway/desktop/render.c @@ -466,12 +466,12 @@ static void render_titlebar(struct sway_output *output, &texture_box.width, &texture_box.height); title_ob_width = texture_box.width; - // The title texture might be shorter than the config->font_height, in - // which case we need to pad it as evenly as possible above and below. - int ob_padding_total = config->font_height * output_scale - - texture_box.height; - int ob_padding_above = floor(ob_padding_total / 2); - int ob_padding_below = ceil(ob_padding_total / 2); + // The title texture might be shorter than the config->font_height, + // in which case we need to pad it above and below. + int ob_padding_above = (config->font_baseline - con->title_baseline) + * output_scale; + int ob_padding_below = (config->font_height - con->title_height) + * output_scale - ob_padding_above; // Render texture texture_box.x = (x - output_x + TITLEBAR_H_PADDING) * output_scale; -- cgit v1.2.3