From 6e5688d7da131acf025c9a51a0466a9fbf5c7b56 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Daniel=20Ekl=C3=B6f?= Date: Thu, 29 Aug 2019 20:41:40 +0200 Subject: [PATCH] render: draw_bar: don't assume height == ascent+descent Instead, draw a bar that is ascent+descent tall, positioned around the baseline such that it starts at the ascent and ends at the descent. --- render.c | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/render.c b/render.c index 88d747b6..66c76f23 100644 --- a/render.c +++ b/render.c @@ -103,10 +103,12 @@ static void draw_bar(const struct terminal *term, pixman_image_t *pix, const pixman_color_t *color, int x, int y) { - /* TODO: investigate if this is the best way */ + int baseline = y + font_baseline(term) - term->fextents.ascent; pixman_image_fill_rectangles( PIXMAN_OP_SRC, pix, color, - 1, &(pixman_rectangle16_t){x, y, 1, term->cell_height}); + 1, &(pixman_rectangle16_t){ + x, baseline, + 1, term->fextents.ascent + term->fextents.descent}); } static void