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:
		| @ -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, | ||||
|  | ||||
		Reference in New Issue
	
	Block a user
	 Matthias Clasen
					Matthias Clasen