From: Alan Third Date: Mon, 29 Aug 2016 19:48:06 +0000 (+0100) Subject: Fix synthetic bold on macOS retina displays X-Git-Tag: emacs-26.0.90~1649 X-Git-Url: http://git.eshelyaron.com/gitweb/?a=commitdiff_plain;h=62e4dc4660cb3b29cfffcad0639e51c7f382ced8;p=emacs.git Fix synthetic bold on macOS retina displays * src/macfont.m (macfont_draw): Multiply the synthetic bold scaling factor by the OS window backing scale factor. --- diff --git a/src/macfont.m b/src/macfont.m index c799100c855..d9bad034fe9 100644 --- a/src/macfont.m +++ b/src/macfont.m @@ -2878,7 +2878,19 @@ macfont_draw (struct glyph_string *s, int from, int to, int x, int y, if (macfont_info->synthetic_bold_p && ! no_antialias_p) { CGContextSetTextDrawingMode (context, kCGTextFillStroke); + + /* Stroke line width for text drawing is not correctly + scaled on Retina display/HiDPI mode when drawn to screen + (whereas it is correctly scaled when drawn to bitmaps), + and synthetic bold looks thinner on such environments. + Apple says there are no plans to address this issue + (rdar://11644870) currently. So we add a workaround. */ +#if MAC_OS_X_VERSION_MAX_ALLOWED >= MAC_OS_X_VERSION_10_7 + CGContextSetLineWidth (context, synthetic_bold_factor * font_size + * [[FRAME_NS_VIEW(f) window] backingScaleFactor]); +#else CGContextSetLineWidth (context, synthetic_bold_factor * font_size); +#endif CG_SET_STROKE_COLOR_WITH_FACE_FOREGROUND (context, face, f); } if (no_antialias_p)