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 | |
parent | 9226aad58cca4dd5a408f46c4ae27f339e415b7d (diff) | |
download | sway-9215ca0f01f7d155191d11fd9caa2574387c6f84.tar.xz |
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')
-rw-r--r-- | sway/tree/container.c | 10 | ||||
-rw-r--r-- | sway/tree/view.c | 3 |
2 files changed, 8 insertions, 5 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, 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; } /** diff --git a/sway/tree/view.c b/sway/tree/view.c index 312c62d1..53215b40 100644 --- a/sway/tree/view.c +++ b/sway/tree/view.c @@ -935,7 +935,8 @@ static void update_marks_texture(struct sway_view *view, int height = view->container->title_height * scale; cairo_t *c = cairo_create(NULL); - get_text_size(c, config->font, &width, NULL, scale, false, "%s", buffer); + get_text_size(c, config->font, &width, NULL, NULL, scale, false, + "%s", buffer); cairo_destroy(c); cairo_surface_t *surface = cairo_image_surface_create( |