summaryrefslogtreecommitdiff
path: root/pango
diff options
context:
space:
mode:
authorBenjamin Otte <otte@redhat.com>2019-12-08 03:33:02 +0100
committerBenjamin Otte <otte@redhat.com>2019-12-08 03:33:02 +0100
commit5e07328675aa49d9b84b3ab4405ff94b92835e9c (patch)
tree42f19c9d575ec1ddb7976079561780ae2aa93714 /pango
parent5ab34cc4103de109ef4e4e54c435c5e4e41cfe96 (diff)
downloadpango-5e07328675aa49d9b84b3ab4405ff94b92835e9c.tar.gz
family: Clarify and improve pango_font_family_get_face()
- Clarify that the function can return NULL - Fix annotations - Allow passing NULL as name to get a guaranteed default face. - Map the default name to "Regular" in the FC backend
Diffstat (limited to 'pango')
-rw-r--r--pango/fonts.c22
-rw-r--r--pango/pangofc-fontmap.c3
2 files changed, 19 insertions, 6 deletions
diff --git a/pango/fonts.c b/pango/fonts.c
index 736c9c20..f4244911 100644
--- a/pango/fonts.c
+++ b/pango/fonts.c
@@ -2295,12 +2295,19 @@ pango_font_family_real_get_face (PangoFontFamily *family,
pango_font_family_list_faces (family, &faces, &n_faces);
face = NULL;
- for (i = 0; i < n_faces; i++)
+ if (name == NULL)
{
- if (strcmp (name, pango_font_face_get_face_name (faces[i])) == 0)
+ face = faces[0];
+ }
+ else
+ {
+ for (i = 0; i < n_faces; i++)
{
- face = faces[i];
- break;
+ if (strcmp (name, pango_font_face_get_face_name (faces[i])) == 0)
+ {
+ face = faces[i];
+ break;
+ }
}
}
@@ -2312,11 +2319,14 @@ pango_font_family_real_get_face (PangoFontFamily *family,
/**
* pango_font_family_get_face:
* @family: a #PangoFontFamily
- * @name: the name of a face
+ * @name: (optional): the name of a face. If the name is %NULL,
+ * the family's default face (fontconfig calls it "Regular")
+ * will be returned.
*
* Gets the #PangoFontFace of @family with the given name.
*
- * Returns: (transfer none): the #PangoFontFace
+ * Returns: (transfer none) (nullable): the #PangoFontFace,
+ * or %NULL if no face with the given name exists.
*
* Since: 1.46
*/
diff --git a/pango/pangofc-fontmap.c b/pango/pangofc-fontmap.c
index 49040b24..9ecea09b 100644
--- a/pango/pangofc-fontmap.c
+++ b/pango/pangofc-fontmap.c
@@ -2861,6 +2861,9 @@ pango_fc_family_get_face (PangoFontFamily *family,
ensure_faces (fcfamily);
+ if (name == NULL)
+ name = "Regular"; /* This name always exists in fontconfig */
+
for (i = 0; i < fcfamily->n_faces; i++)
{
PangoFontFace *face = PANGO_FONT_FACE (fcfamily->faces[i]);