src/hb-coretext.cc | 24 ++++++++++++++++++++---- 1 file changed, 20 insertions(+), 4 deletions(-)
New commits: commit 1b3011c27df531875d432e909ae6b77f115c5017 Author: Behdad Esfahbod <beh...@behdad.org> Date: Tue Aug 12 19:17:19 2014 -0400 [coretext] Pass buffer language to CoreText diff --git a/src/hb-coretext.cc b/src/hb-coretext.cc index 53adc81..06e001c 100644 --- a/src/hb-coretext.cc +++ b/src/hb-coretext.cc @@ -698,6 +698,18 @@ retry: CFAttributedStringSetAttribute (attr_string, CFRangeMake (0, chars_len), kCTVerticalFormsAttributeName, kCFBooleanTrue); } + if (buffer->props.language) + { + CFStringRef lang = CFStringCreateWithCStringNoCopy (kCFAllocatorDefault, + hb_language_to_string (buffer->props.language), + kCFStringEncodingUTF8, + kCFAllocatorNull); + if (unlikely (!lang)) + FAIL ("CFStringCreateWithCStringNoCopy failed"); + CFAttributedStringSetAttribute (attr_string, CFRangeMake (0, chars_len), + kCTLanguageAttributeName, lang); + CFRelease (lang); + } CFAttributedStringSetAttribute (attr_string, CFRangeMake (0, chars_len), kCTFontAttributeName, font_data->ct_font); commit 3eb6a4dbf25b11fce5e0e426e89f7457887aeca0 Author: Behdad Esfahbod <beh...@behdad.org> Date: Tue Aug 12 19:10:33 2014 -0400 [coretext] Minor diff --git a/src/hb-coretext.cc b/src/hb-coretext.cc index f08aec5..53adc81 100644 --- a/src/hb-coretext.cc +++ b/src/hb-coretext.cc @@ -693,10 +693,11 @@ retry: if (unlikely (!attr_string)) FAIL ("CFAttributedStringCreateMutable failed"); CFAttributedStringReplaceString (attr_string, CFRangeMake (0, 0), string_ref); - CFAttributedStringSetAttribute (attr_string, CFRangeMake (0, chars_len), - kCTVerticalFormsAttributeName, - HB_DIRECTION_IS_VERTICAL (buffer->props.direction) ? - kCFBooleanTrue : kCFBooleanFalse); + if (HB_DIRECTION_IS_VERTICAL (buffer->props.direction)) + { + CFAttributedStringSetAttribute (attr_string, CFRangeMake (0, chars_len), + kCTVerticalFormsAttributeName, kCFBooleanTrue); + } CFAttributedStringSetAttribute (attr_string, CFRangeMake (0, chars_len), kCTFontAttributeName, font_data->ct_font); commit 08acfe0d3a1d8223a9fa0696703fff63d6c2ea8b Author: Behdad Esfahbod <beh...@behdad.org> Date: Tue Aug 12 18:57:08 2014 -0400 [hb-coretext] Fix cluster order of notdef runs in RTL text diff --git a/src/hb-coretext.cc b/src/hb-coretext.cc index fe5f31b..f08aec5 100644 --- a/src/hb-coretext.cc +++ b/src/hb-coretext.cc @@ -843,6 +843,7 @@ retry: CGGlyph notdef = 0; double advance = CTFontGetAdvancesForGlyphs (font_data->ct_font, kCTFontHorizontalOrientation, ¬def, NULL, 1); + unsigned int old_len = buffer->len; for (CFIndex j = range.location; j < range.location + range.length; j++) { UniChar ch = CFStringGetCharacterAtIndex (string_ref, j); @@ -865,6 +866,8 @@ retry: info++; buffer->len++; } + if (HB_DIRECTION_IS_BACKWARD (buffer->props.direction)) + buffer->reverse_range (old_len, buffer->len); continue; } } _______________________________________________ HarfBuzz mailing list HarfBuzz@lists.freedesktop.org http://lists.freedesktop.org/mailman/listinfo/harfbuzz