summaryrefslogtreecommitdiff
path: root/pango/pango-item.c
diff options
context:
space:
mode:
Diffstat (limited to 'pango/pango-item.c')
-rw-r--r--pango/pango-item.c47
1 files changed, 47 insertions, 0 deletions
diff --git a/pango/pango-item.c b/pango/pango-item.c
index 2b2664c5..c599241f 100644
--- a/pango/pango-item.c
+++ b/pango/pango-item.c
@@ -68,6 +68,9 @@ pango_item_copy (PangoItem *item)
((PangoItemPrivate *)result)->char_offset = ((PangoItemPrivate *)item)->char_offset;
result->analysis = item->analysis;
+ if (result->analysis.lang_engine)
+ g_object_ref (result->analysis.lang_engine);
+
if (result->analysis.font)
g_object_ref (result->analysis.font);
@@ -102,6 +105,9 @@ pango_item_free (PangoItem *item)
g_slist_free (item->analysis.extra_attrs);
}
+ if (item->analysis.lang_engine)
+ g_object_unref (item->analysis.lang_engine);
+
if (item->analysis.font)
g_object_unref (item->analysis.font);
@@ -324,3 +330,44 @@ pango_analysis_collect_features (const PangoAnalysis *analysis,
}
}
}
+
+/*< private >
+ * pango_analysis_set_size_font:
+ * @analysis: a `PangoAnalysis`
+ * @font: a `PangoFont`
+ *
+ * Sets the font to use for determining the line height.
+ *
+ * This is used when scaling fonts for emulated Small Caps,
+ * to preserve the original line height.
+ */
+void
+pango_analysis_set_size_font (PangoAnalysis *analysis,
+ PangoFont *font)
+{
+ PangoAnalysisPrivate *priv = (PangoAnalysisPrivate *)analysis;
+
+ if (priv->size_font)
+ g_object_unref (priv->size_font);
+ priv->size_font = font;
+ if (priv->size_font)
+ g_object_ref (priv->size_font);
+}
+
+/*< private >
+ * pango_analysis_get_size_font:
+ * @analysis: a `PangoAnalysis`
+ *
+ * Gets the font to use for determining line height.
+ *
+ * If this returns `NULL`, use analysis->font.
+ *
+ * Returns: (nullable) (transfer none): the font
+ */
+PangoFont *
+pango_analysis_get_size_font (const PangoAnalysis *analysis)
+{
+ PangoAnalysisPrivate *priv = (PangoAnalysisPrivate *)analysis;
+
+ return priv->size_font;
+}