forked from AuroraMiddleware/gtk
Fix a critical in GtkFontChooserWidget
When the level doesn't include the style, we need to work a bit harder to really get a face object here. Fixes: #5173
This commit is contained in:
parent
9baae419f6
commit
ea9aa8ed82
@ -963,27 +963,29 @@ gtk_font_chooser_widget_load_fonts (GtkFontChooserWidget *fontchooser,
|
||||
if ((priv->level & GTK_FONT_CHOOSER_LEVEL_STYLE) == 0)
|
||||
{
|
||||
GtkDelayedFontDescription *desc;
|
||||
PangoFontFace *face;
|
||||
PangoFontFace *face = NULL;
|
||||
|
||||
#if PANGO_VERSION_CHECK(1,46,0)
|
||||
face = pango_font_family_get_face (families[i], NULL);
|
||||
#else
|
||||
{
|
||||
PangoFontFace **faces;
|
||||
int j, n_faces;
|
||||
pango_font_family_list_faces (families[i], &faces, &n_faces);
|
||||
face = faces[0];
|
||||
for (j = 0; j < n_faces; j++)
|
||||
{
|
||||
if (strcmp (pango_font_face_get_face_name (faces[j]), "Regular") == 0)
|
||||
{
|
||||
face = faces[j];
|
||||
break;
|
||||
}
|
||||
}
|
||||
g_free (faces);
|
||||
}
|
||||
#endif
|
||||
if (!face)
|
||||
{
|
||||
PangoFontFace **faces;
|
||||
int j, n_faces;
|
||||
pango_font_family_list_faces (families[i], &faces, &n_faces);
|
||||
face = faces[0];
|
||||
for (j = 0; j < n_faces; j++)
|
||||
{
|
||||
if (strcmp (pango_font_face_get_face_name (faces[j]), "Regular") == 0)
|
||||
{
|
||||
face = faces[j];
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
g_free (faces);
|
||||
}
|
||||
|
||||
desc = gtk_delayed_font_description_new (face);
|
||||
|
||||
gtk_list_store_insert_with_values (list_store, &iter, -1,
|
||||
|
Loading…
Reference in New Issue
Block a user