| Index: ui/gfx/render_text_mac.mm
|
| diff --git a/ui/gfx/render_text_mac.mm b/ui/gfx/render_text_mac.mm
|
| index 584f08d49ea2e2ef6fba1ec6cd999b19c74a3f31..a6e28c25cd8c67a2f304a31c3848d267dd68723a 100644
|
| --- a/ui/gfx/render_text_mac.mm
|
| +++ b/ui/gfx/render_text_mac.mm
|
| @@ -67,8 +67,11 @@ namespace gfx {
|
| namespace internal {
|
|
|
| // Note: this is only used by RenderTextHarfbuzz.
|
| -sk_sp<SkTypeface> CreateSkiaTypeface(const gfx::Font& font, int style) {
|
| - gfx::Font font_with_style = font.Derive(0, style);
|
| +sk_sp<SkTypeface> CreateSkiaTypeface(const Font& font,
|
| + bool italic,
|
| + Font::Weight weight) {
|
| + const Font::FontStyle style = italic ? Font::ITALIC : Font::NORMAL;
|
| + Font font_with_style = font.Derive(0, style, weight);
|
| if (!font_with_style.GetNativeFont())
|
| return nullptr;
|
|
|
| @@ -119,7 +122,7 @@ std::vector<RenderText::FontSpan> RenderTextMac::GetFontSpansForTesting() {
|
| const CFRange cf_range = CTRunGetStringRange(runs_[i].ct_run);
|
| const Range range(cf_range.location, cf_range.location + cf_range.length);
|
| spans.push_back(RenderText::FontSpan(
|
| - gfx::Font(base::mac::CFToNSCast(runs_[i].ct_font.get())), range));
|
| + Font(base::mac::CFToNSCast(runs_[i].ct_font.get())), range));
|
| }
|
|
|
| return spans;
|
| @@ -250,7 +253,7 @@ float RenderTextMac::GetLayoutTextWidth() {
|
| return GetCTLineSize(line.get(), &baseline).width();
|
| }
|
|
|
| -gfx::SizeF RenderTextMac::GetCTLineSize(CTLineRef line, SkScalar* baseline) {
|
| +SizeF RenderTextMac::GetCTLineSize(CTLineRef line, SkScalar* baseline) {
|
| CGFloat ascent = 0;
|
| CGFloat descent = 0;
|
| CGFloat leading = 0;
|
| @@ -311,7 +314,7 @@ base::ScopedCFTypeRef<CFMutableArrayRef> RenderTextMac::ApplyStyles(
|
| CFArrayCreateMutable(NULL, 0, &kCFTypeArrayCallBacks));
|
|
|
| // https://developer.apple.com/library/mac/#documentation/Carbon/Reference/CoreText_StringAttributes_Ref/Reference/reference.html
|
| - internal::StyleIterator style(colors(), baselines(), styles());
|
| + internal::StyleIterator style(colors(), baselines(), weights(), styles());
|
| const size_t layout_text_length = CFAttributedStringGetLength(attr_string);
|
| for (size_t i = 0, end = 0; i < layout_text_length; i = end) {
|
| end = TextIndexToGivenTextIndex(text, style.GetRange().end());
|
| @@ -331,8 +334,10 @@ base::ScopedCFTypeRef<CFMutableArrayRef> RenderTextMac::ApplyStyles(
|
| CFArrayAppendValue(attributes, underline_value);
|
| }
|
|
|
| - const int traits = (style.style(BOLD) ? kCTFontBoldTrait : 0) |
|
| - (style.style(ITALIC) ? kCTFontItalicTrait : 0);
|
| + // TODO(mboc): Apply font weights other than bold below.
|
| + const int traits =
|
| + (style.style(ITALIC) ? kCTFontItalicTrait : 0) |
|
| + (style.weight() >= Font::Weight::BOLD ? kCTFontBoldTrait : 0);
|
| if (traits != 0) {
|
| base::ScopedCFTypeRef<CTFontRef> styled_font =
|
| CopyFontWithSymbolicTraits(font, traits);
|
|
|