summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMatthias Clasen <mclasen@redhat.com>2021-08-30 16:28:43 -0400
committerMatthias Clasen <mclasen@redhat.com>2021-08-31 07:50:18 -0400
commit4f13d4f4b5bc15d84b55464c69d2b62b4d749a65 (patch)
treee867a73006eb965c0cdaf84dabffad96de9cfdb0
parent75bb4625c400979981f16377b9ae7dfaad540bd3 (diff)
downloadpango-4f13d4f4b5bc15d84b55464c69d2b62b4d749a65.tar.gz
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
-rw-r--r--pango/pangocoretext-fontmap.c7
-rw-r--r--pango/pangocoretext.c7
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 *