From 4f13d4f4b5bc15d84b55464c69d2b62b4d749a65 Mon Sep 17 00:00:00 2001 From: Matthias Clasen Date: Mon, 30 Aug 2021 16:28:43 -0400 Subject: coretext: Set size on font descriptions Set a size on the font description returned by pango_font_describe(). Otherwise, scaling it doesn't work. Fixes: #610 --- pango/pangocoretext-fontmap.c | 7 +++++++ 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 * -- cgit v1.2.1