[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Emacs-diffs] 62e4dc4 62e4dc4 1/2: Fix synthetic bold on macOS retina di
From: |
Alan Third |
Subject: |
[Emacs-diffs] 62e4dc4 62e4dc4 1/2: Fix synthetic bold on macOS retina displays |
Date: |
Sun, 4 Sep 2016 22:12:05 +0000 (UTC) |
branch: 62e4dc4
commit 62e4dc4660cb3b29cfffcad0639e51c7f382ced8
Author: Alan Third <address@hidden>
Commit: Alan Third <address@hidden>
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.
---
src/macfont.m | 12 ++++++++++++
1 file changed, 12 insertions(+)
diff --git a/src/macfont.m b/src/macfont.m
index c799100..d9bad03 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)