]> git.eshelyaron.com Git - emacs.git/commitdiff
Fix selection of fonts that don't have regular weight
authorEli Zaretskii <eliz@gnu.org>
Fri, 17 Dec 2021 08:35:44 +0000 (10:35 +0200)
committerEli Zaretskii <eliz@gnu.org>
Fri, 17 Dec 2021 08:35:44 +0000 (10:35 +0200)
* src/font.c (font_delete_unmatched): The kludge of allowing
inexact matches of the font weight is now used for non-NTGUI
platforms as well.  (Bug#52493)

src/font.c

index d780d781f620d7ecde7c6024243f768a753cc016..f934a8c0adc10520a3ec5a2bbe27298e23d7bb8a 100644 (file)
@@ -2768,7 +2768,6 @@ font_delete_unmatched (Lisp_Object vec, Lisp_Object spec, int size)
              int candidate = XFIXNUM (AREF (entity, prop)) >> 8;
 
              if (candidate != required
-#ifdef HAVE_NTGUI
                  /* A kludge for w32 font search, where listing a
                     family returns only 4 standard weights: regular,
                     italic, bold, bold-italic.  For other values one
@@ -2778,10 +2777,14 @@ font_delete_unmatched (Lisp_Object vec, Lisp_Object spec, int size)
                     weight, so if we require exact match, the
                     non-regular font will be rejected.  So we relax
                     the accuracy of the match here, and let
-                    font_sort_entities find the best match.  */
+                    font_sort_entities find the best match.
+
+                    Similar things happen on Posix platforms, when
+                    people use font families that don't have the
+                    regular weight, only the medium weight: these
+                    families get rejected if we require an exact match.  */
                  && (prop != FONT_WEIGHT_INDEX
                      || eabs (candidate - required) > 100)
-#endif
                  )
                prop = FONT_SPEC_MAX;
            }