diff options
author | 2018-09-08 16:19:31 +1000 | |
---|---|---|
committer | 2018-09-08 16:25:07 +1000 | |
commit | 9215ca0f01f7d155191d11fd9caa2574387c6f84 (patch) | |
tree | a1defcadae4b1d07388fd9e6bfe2a09051aec777 /include | |
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 'include')
-rw-r--r-- | include/pango.h | 2 | ||||
-rw-r--r-- | include/sway/config.h | 1 | ||||
-rw-r--r-- | include/sway/tree/container.h | 1 |
3 files changed, 3 insertions, 1 deletions
diff --git a/include/pango.h b/include/pango.h index 4492f01e..09a535a5 100644 --- a/include/pango.h +++ b/include/pango.h | |||
@@ -20,7 +20,7 @@ int escape_markup_text(const char *src, char *dest, int dest_length); | |||
20 | PangoLayout *get_pango_layout(cairo_t *cairo, const char *font, | 20 | PangoLayout *get_pango_layout(cairo_t *cairo, const char *font, |
21 | const char *text, double scale, bool markup); | 21 | const char *text, double scale, bool markup); |
22 | void get_text_size(cairo_t *cairo, const char *font, int *width, int *height, | 22 | void get_text_size(cairo_t *cairo, const char *font, int *width, int *height, |
23 | double scale, bool markup, const char *fmt, ...); | 23 | int *baseline, double scale, bool markup, const char *fmt, ...); |
24 | void pango_printf(cairo_t *cairo, const char *font, | 24 | void pango_printf(cairo_t *cairo, const char *font, |
25 | double scale, bool markup, const char *fmt, ...); | 25 | double scale, bool markup, const char *fmt, ...); |
26 | 26 | ||
diff --git a/include/sway/config.h b/include/sway/config.h index 2fef0081..b52bb681 100644 --- a/include/sway/config.h +++ b/include/sway/config.h | |||
@@ -349,6 +349,7 @@ struct sway_config { | |||
349 | enum sway_container_layout default_layout; | 349 | enum sway_container_layout default_layout; |
350 | char *font; | 350 | char *font; |
351 | size_t font_height; | 351 | size_t font_height; |
352 | size_t font_baseline; | ||
352 | bool pango_markup; | 353 | bool pango_markup; |
353 | size_t urgent_timeout; | 354 | size_t urgent_timeout; |
354 | enum sway_fowa focus_on_window_activation; | 355 | enum sway_fowa focus_on_window_activation; |
diff --git a/include/sway/tree/container.h b/include/sway/tree/container.h index 6efecf7c..2735daa3 100644 --- a/include/sway/tree/container.h +++ b/include/sway/tree/container.h | |||
@@ -117,6 +117,7 @@ struct sway_container { | |||
117 | struct wlr_texture *title_unfocused; | 117 | struct wlr_texture *title_unfocused; |
118 | struct wlr_texture *title_urgent; | 118 | struct wlr_texture *title_urgent; |
119 | size_t title_height; | 119 | size_t title_height; |
120 | size_t title_baseline; | ||
120 | 121 | ||
121 | struct { | 122 | struct { |
122 | struct wl_signal destroy; | 123 | struct wl_signal destroy; |