diff options
Diffstat (limited to 'pango')
-rw-r--r-- | pango/pangocoretext-fontmap.c | 7 | ||||
-rw-r--r-- | pango/pangocoretext.c | 7 |
2 files changed, 12 insertions, 2 deletions
diff --git a/pango/pangocoretext-fontmap.c b/pango/pangocoretext-fontmap.c index 0980303b..3d8544c6 100644 --- a/pango/pangocoretext-fontmap.c +++ b/pango/pangocoretext-fontmap.c @@ -407,6 +407,8 @@ _pango_core_text_font_description_from_ct_font_descriptor (CTFontDescriptorRef d char *family_name; char *style_name; PangoFontDescription *font_desc; + CFNumberRef cf_number; + CGFloat pointsize; font_desc = pango_font_description_new (); @@ -419,6 +421,11 @@ _pango_core_text_font_description_from_ct_font_descriptor (CTFontDescriptorRef d pango_font_description_set_family (font_desc, family_name); g_free (family_name); + /* Size (if we have one) */ + cf_number = CTFontDescriptorCopyAttribute (desc, kCTFontSizeAttribute); + if (cf_number != NULL && CFNumberGetValue (cf_number, kCFNumberCGFloatType, &pointsize)) + pango_font_description_set_size (font_desc, (pointsize / (96./72.)) * 1024); + /* Weight */ pango_font_description_set_weight (font_desc, ct_font_descriptor_get_weight (desc)); diff --git a/pango/pangocoretext.c b/pango/pangocoretext.c index ccb3f674..25358cac 100644 --- a/pango/pangocoretext.c +++ b/pango/pangocoretext.c @@ -64,10 +64,13 @@ pango_core_text_font_describe (PangoFont *font) PangoCoreTextFont *ctfont = (PangoCoreTextFont *)font; PangoCoreTextFontPrivate *priv = ctfont->priv; CTFontDescriptorRef ctfontdesc; + PangoFontDescription *desc; - ctfontdesc = pango_core_text_font_key_get_ctfontdescriptor (priv->key); + ctfontdesc = CTFontCopyFontDescriptor (priv->font_ref); + desc = _pango_core_text_font_description_from_ct_font_descriptor (ctfontdesc); + CFRelease (ctfontdesc); - return _pango_core_text_font_description_from_ct_font_descriptor (ctfontdesc); + return desc; } static PangoCoverage * |