diff options
Diffstat (limited to 'src')
-rw-r--r-- | src/ports/SkFontHost_mac_coretext.cpp | 11 |
1 files changed, 9 insertions, 2 deletions
diff --git a/src/ports/SkFontHost_mac_coretext.cpp b/src/ports/SkFontHost_mac_coretext.cpp index 5b04f0208a..3bb90f7a6e 100644 --- a/src/ports/SkFontHost_mac_coretext.cpp +++ b/src/ports/SkFontHost_mac_coretext.cpp @@ -820,8 +820,15 @@ SkAdvancedTypefaceMetrics* SkFontHost::GetAdvancedTypefaceMetrics( info->fType = SkAdvancedTypefaceMetrics::kNotEmbeddable_Font; } else if (perGlyphInfo & SkAdvancedTypefaceMetrics::kHAdvance_PerGlyphInfo) { - info->fGlyphWidths.reset( - getAdvanceData(ctFont, glyphCount, &getWidthAdvance)); + if (info->fStyle & SkAdvancedTypefaceMetrics::kFixedPitch_Style) { + appendRange(&info->fGlyphWidths, 0); + info->fGlyphWidths->fAdvance.append(1, &min_width); + finishRange(info->fGlyphWidths.get(), 0, + SkAdvancedTypefaceMetrics::WidthRange::kDefault); + } else { + info->fGlyphWidths.reset( + getAdvanceData(ctFont, glyphCount, &getWidthAdvance)); + } } CFSafeRelease(ctFont); |