summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMatthias Clasen <mclasen@redhat.com>2021-08-31 18:48:54 +0000
committerMatthias Clasen <mclasen@redhat.com>2021-08-31 18:48:54 +0000
commit923284062075fd2fe1b061d256f91aec2912b1ab (patch)
tree0b3b5d777d81fe2be77241afb7e0154970179ce3
parent2555d464361e96542ec9d9b2383e7ec0fe42dad3 (diff)
parent7137a522094154281b4b328d4fa22df05b84aba5 (diff)
downloadpango-923284062075fd2fe1b061d256f91aec2912b1ab.tar.gz
Merge branch 'matthiasc/for-main' into 'main'
fonts: Redo the get_face implementation See merge request GNOME/pango!465
-rw-r--r--pango/fonts.c13
-rw-r--r--pango/pango-font-private.h1
-rw-r--r--pango/pango-font.h2
3 files changed, 14 insertions, 2 deletions
diff --git a/pango/fonts.c b/pango/fonts.c
index f144097d..d2fd4308 100644
--- a/pango/fonts.c
+++ b/pango/fonts.c
@@ -1737,6 +1737,14 @@ pango_font_default_has_char (PangoFont *font,
return result != PANGO_COVERAGE_NONE;
}
+static PangoFontFace *
+pango_font_default_get_face (PangoFont *font)
+{
+ PangoFontMap *map = pango_font_get_font_map (font);
+
+ return PANGO_FONT_MAP_GET_CLASS (map)->get_face (map,font);
+}
+
static void
pango_font_class_init (PangoFontClass *class G_GNUC_UNUSED)
{
@@ -1751,6 +1759,7 @@ pango_font_class_init (PangoFontClass *class G_GNUC_UNUSED)
pclass->is_hinted = pango_font_default_is_hinted;
pclass->get_scale_factors = pango_font_default_get_scale_factors;
pclass->has_char = pango_font_default_has_char;
+ pclass->get_face = pango_font_default_get_face;
}
static void
@@ -1979,9 +1988,9 @@ pango_font_get_font_map (PangoFont *font)
PangoFontFace *
pango_font_get_face (PangoFont *font)
{
- PangoFontMap *map = pango_font_get_font_map (font);
+ PangoFontClassPrivate *pclass = PANGO_FONT_GET_CLASS_PRIVATE (font);
- return PANGO_FONT_MAP_GET_CLASS (map)->get_face (map,font);
+ return pclass->get_face (font);
}
/**
diff --git a/pango/pango-font-private.h b/pango/pango-font-private.h
index 1f31f559..93ce27aa 100644
--- a/pango/pango-font-private.h
+++ b/pango/pango-font-private.h
@@ -44,6 +44,7 @@ typedef struct {
gboolean (* has_char) (PangoFont *font,
gunichar wc);
+ PangoFontFace * (* get_face) (PangoFont *font);
} PangoFontClassPrivate;
gboolean pango_font_is_hinted (PangoFont *font);
diff --git a/pango/pango-font.h b/pango/pango-font.h
index 6b78c2ed..d4bded86 100644
--- a/pango/pango-font.h
+++ b/pango/pango-font.h
@@ -664,6 +664,8 @@ PangoLanguage ** pango_font_get_languages (PangoFont *font);
#endif
#endif
+G_DEFINE_AUTOPTR_CLEANUP_FUNC(PangoFontFamily, g_object_unref)
+G_DEFINE_AUTOPTR_CLEANUP_FUNC(PangoFontFace, g_object_unref)
G_DEFINE_AUTOPTR_CLEANUP_FUNC(PangoFont, g_object_unref)
G_END_DECLS