From f235bfdfdf2a33f9cf0a7074fb3c1722722ffb7b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Daniel=20Ekl=C3=B6f?= Date: Mon, 2 Mar 2020 18:43:23 +0100 Subject: [PATCH] terminal: workaround founds with negative line gaps Some fonts, even monospaced ones, have a negative line gap (line height < ascent + descent). Using the font's line height as cell height will result in some glyphs overflowing into the cell above or below. Workaround by using which ever value is the largest: the line height or ascent + descent. --- terminal.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/terminal.c b/terminal.c index b0f0679c..290a1425 100644 --- a/terminal.c +++ b/terminal.c @@ -521,7 +521,8 @@ term_set_fonts(struct terminal *term, struct font *fonts[static 4]) term->cell_width = term->fonts[0]->space_x_advance > 0 ? term->fonts[0]->space_x_advance : term->fonts[0]->max_x_advance; - term->cell_height = term->fonts[0]->height; + term->cell_height = max(term->fonts[0]->height, + term->fonts[0]->ascent + term->fonts[0]->descent); LOG_INFO("cell width=%d, height=%d", term->cell_width, term->cell_height); render_resize_force(term, term->width, term->height);