diff options
author | Matthias Clasen <mclasen@redhat.com> | 2021-01-24 21:55:14 +0000 |
---|---|---|
committer | Matthias Clasen <mclasen@redhat.com> | 2021-01-24 21:55:14 +0000 |
commit | 23e033aead84005d5d253de7f5e891b9eef60baa (patch) | |
tree | da11169c87840011970de5e27f3ded4c3a96b3e5 /pango/pangofc-fontmap.c | |
parent | 7c99441eda0e7a79d90b7a73faf93f1c89532120 (diff) | |
parent | 49b1f80a83433e5ddb18bd4e1577171fef8641e5 (diff) | |
download | pango-23e033aead84005d5d253de7f5e891b9eef60baa.tar.gz |
Merge branch 'fix-font-roundtrip' into 'master'
Fix font roundtrip
Closes #530
See merge request GNOME/pango!280
Diffstat (limited to 'pango/pangofc-fontmap.c')
-rw-r--r-- | pango/pangofc-fontmap.c | 19 |
1 files changed, 18 insertions, 1 deletions
diff --git a/pango/pangofc-fontmap.c b/pango/pangofc-fontmap.c index 764336ae..fd17309d 100644 --- a/pango/pangofc-fontmap.c +++ b/pango/pangofc-fontmap.c @@ -2519,7 +2519,24 @@ pango_fc_font_description_from_pattern (FcPattern *pattern, gboolean include_siz pango_font_description_set_variant (desc, PANGO_VARIANT_NORMAL); if (include_size && FcPatternGetDouble (pattern, FC_SIZE, 0, &size) == FcResultMatch) - pango_font_description_set_size (desc, size * PANGO_SCALE); + { + FcMatrix *fc_matrix; + double scale_factor = 1; + + if (FcPatternGetMatrix (pattern, FC_MATRIX, 0, &fc_matrix) == FcResultMatch) + { + PangoMatrix mat = PANGO_MATRIX_INIT; + + mat.xx = fc_matrix->xx; + mat.xy = fc_matrix->xy; + mat.yx = fc_matrix->yx; + mat.yy = fc_matrix->yy; + + scale_factor = pango_matrix_get_font_scale_factor (&mat); + } + + pango_font_description_set_size (desc, scale_factor * size * PANGO_SCALE); + } /* gravity is a bit different. we don't want to set it if it was not set on * the pattern */ |