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/desktop | |
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/desktop')
-rw-r--r-- | sway/desktop/render.c | 12 |
1 files changed, 6 insertions, 6 deletions
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, | |||
466 | &texture_box.width, &texture_box.height); | 466 | &texture_box.width, &texture_box.height); |
467 | title_ob_width = texture_box.width; | 467 | title_ob_width = texture_box.width; |
468 | 468 | ||
469 | // The title texture might be shorter than the config->font_height, in | 469 | // The title texture might be shorter than the config->font_height, |
470 | // which case we need to pad it as evenly as possible above and below. | 470 | // in which case we need to pad it above and below. |
471 | int ob_padding_total = config->font_height * output_scale - | 471 | int ob_padding_above = (config->font_baseline - con->title_baseline) |
472 | texture_box.height; | 472 | * output_scale; |
473 | int ob_padding_above = floor(ob_padding_total / 2); | 473 | int ob_padding_below = (config->font_height - con->title_height) |
474 | int ob_padding_below = ceil(ob_padding_total / 2); | 474 | * output_scale - ob_padding_above; |
475 | 475 | ||
476 | // Render texture | 476 | // Render texture |
477 | texture_box.x = (x - output_x + TITLEBAR_H_PADDING) * output_scale; | 477 | texture_box.x = (x - output_x + TITLEBAR_H_PADDING) * output_scale; |