From 2e49eb0c706b5124e7acc30d098564aa929296ae Mon Sep 17 00:00:00 2001 From: Matthias Clasen Date: Fri, 24 Sep 2021 12:07:17 -0400 Subject: Underline spaces again in ada1bc9385d638e4c42, I switched to using ink rects for horizontal underline extents, to improve the placement of single-character underlines in the presence of kerning. I overlooked the fact that spaces don't have ink, so the change caused leading and trailing whitespace to not be underlined anymore. Fix this by using the union of ink and logical rectangles. Fixes: #613 --- pango/pango-renderer.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/pango/pango-renderer.c b/pango/pango-renderer.c index b3b70549..311c28cd 100644 --- a/pango/pango-renderer.c +++ b/pango/pango-renderer.c @@ -362,8 +362,8 @@ add_underline (PangoRenderer *renderer, int underline_thickness = pango_font_metrics_get_underline_thickness (metrics); int underline_position = pango_font_metrics_get_underline_position (metrics); - new_rect.x = base_x + ink_rect->x; - new_rect.width = ink_rect->width; + new_rect.x = base_x + MIN (ink_rect->x, logical_rect->x); + new_rect.width = MAX (ink_rect->width, logical_rect->width); new_rect.height = underline_thickness; new_rect.y = base_y; -- cgit v1.2.1