summaryrefslogtreecommitdiff
path: root/pango/pangowin32-fontmap.c
diff options
context:
space:
mode:
authorMatthias Clasen <mclasen@redhat.com>2021-08-09 11:40:19 +0000
committerMatthias Clasen <mclasen@redhat.com>2021-08-09 11:40:19 +0000
commit587c159a8b835a84f4ee5ec731052b2dc3c02aee (patch)
tree4f622868f8a81defd645759e236fd284ca726c4b /pango/pangowin32-fontmap.c
parent486892cd3e8ecf981b238a420ed1d22fd7abdc7e (diff)
parenta7c882df35d84b1def7322b8d4f837c9f6d24922 (diff)
downloadpango-587c159a8b835a84f4ee5ec731052b2dc3c02aee.tar.gz
Merge branch 'win32-fixes' into 'main'
Attempt to fix some Win32-related issues Closes #583 and #578 See merge request GNOME/pango!399
Diffstat (limited to 'pango/pangowin32-fontmap.c')
-rw-r--r--pango/pangowin32-fontmap.c22
1 files changed, 19 insertions, 3 deletions
diff --git a/pango/pangowin32-fontmap.c b/pango/pangowin32-fontmap.c
index b6341f52..200ea9ce 100644
--- a/pango/pangowin32-fontmap.c
+++ b/pango/pangowin32-fontmap.c
@@ -1037,19 +1037,35 @@ pango_win32_font_map_load_font (PangoFontMap *fontmap,
win32family = g_hash_table_lookup (win32fontmap->families, families[i]);
if (win32family)
{
+ PangoFontDescription *new_desc;
+ PangoFontDescription *best_desc = NULL;
+
PING (("got win32family"));
tmp_list = win32family->faces;
+
while (tmp_list)
{
PangoWin32Face *face = tmp_list->data;
+ new_desc = pango_font_face_describe (PANGO_FONT_FACE (face));
+ pango_font_description_set_gravity (new_desc,
+ pango_font_description_get_gravity (description));
if (pango_font_description_better_match (description,
- best_match ? best_match->description : NULL,
- face->description))
- best_match = face;
+ best_desc,
+ new_desc))
+ {
+ pango_font_description_free (best_desc);
+ best_desc = new_desc;
+ best_match = face;
+ }
+ else
+ pango_font_description_free (new_desc);
tmp_list = tmp_list->next;
}
+
+ if (best_desc != NULL)
+ pango_font_description_free (best_desc);
}
}