From: Eli Zaretskii Date: Sat, 7 Nov 2020 08:27:15 +0000 (+0200) Subject: Fix scrolling problems with misc-fixed fonts under Cairo X-Git-Tag: emacs-28.0.90~5217 X-Git-Url: http://git.eshelyaron.com/gitweb/?a=commitdiff_plain;h=33e2418a7cfd2ac1b98b86c5ddaf99c1d90daaf0;p=emacs.git Fix scrolling problems with misc-fixed fonts under Cairo * src/ftcrfont.c (ftcrfont_glyph_extents): Avoid rounding up the glyph ascent to a higher value than needed due to floating-point roundoff errors. (Bug#44284) --- diff --git a/src/ftcrfont.c b/src/ftcrfont.c index a10308c62ee..b89510704e1 100644 --- a/src/ftcrfont.c +++ b/src/ftcrfont.c @@ -84,7 +84,12 @@ ftcrfont_glyph_extents (struct font *font, cache->lbearing = floor (extents.x_bearing); cache->rbearing = ceil (extents.width + extents.x_bearing); cache->width = lround (extents.x_advance); - cache->ascent = ceil (- extents.y_bearing); + /* The subtraction of a small number is to avoid rounding up due + to floating-point inaccuracies with some fonts, which then + could cause unpleasant effects while scrolling (see bug + #44284), since we then think that a glyph row's ascent is too + small to accommodate a glyph with a higher phys_ascent. */ + cache->ascent = ceil (- extents.y_bearing - 1.0 / 256); cache->descent = ceil (extents.height + extents.y_bearing); }