]> git.eshelyaron.com Git - emacs.git/commitdiff
Fix scrolling problems with misc-fixed fonts under Cairo
authorEli Zaretskii <eliz@gnu.org>
Sat, 7 Nov 2020 08:27:15 +0000 (10:27 +0200)
committerEli Zaretskii <eliz@gnu.org>
Sat, 7 Nov 2020 08:27:15 +0000 (10:27 +0200)
* 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)

src/ftcrfont.c

index a10308c62eebef9463f81a4b2beb383e4ad4e853..b89510704e17c0f13359227448ff769d06cd35a4 100644 (file)
@@ -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);
     }