pango: move an utility function from gtklabel

This will be used both by gtklabel and gtkentry
This commit is contained in:
Paolo Borelli 2015-07-05 22:48:16 +02:00
parent 3175d0fcf0
commit b92c530a61
3 changed files with 27 additions and 17 deletions

View File

@ -2145,21 +2145,6 @@ gtk_label_set_use_underline_internal (GtkLabel *label,
}
}
static gboolean
my_pango_attr_list_merge_filter (PangoAttribute *attribute,
gpointer list)
{
pango_attr_list_change (list, pango_attribute_copy (attribute));
return FALSE;
}
static void
my_pango_attr_list_merge (PangoAttrList *into,
PangoAttrList *from)
{
pango_attr_list_filter (from, my_pango_attr_list_merge_filter, into);
}
/* Calculates text, attrs and mnemonic_keyval from
* label, use_underline and use_markup
*/
@ -3480,7 +3465,7 @@ gtk_label_update_layout_attributes (GtkLabel *label)
if (priv->markup_attrs)
{
if (attrs)
my_pango_attr_list_merge (attrs, priv->markup_attrs);
_gtk_pango_attr_list_merge (attrs, priv->markup_attrs);
else
attrs = pango_attr_list_ref (priv->markup_attrs);
}
@ -3488,7 +3473,7 @@ gtk_label_update_layout_attributes (GtkLabel *label)
if (priv->attrs)
{
if (attrs)
my_pango_attr_list_merge (attrs, priv->attrs);
_gtk_pango_attr_list_merge (attrs, priv->attrs);
else
attrs = pango_attr_list_ref (priv->attrs);
}

View File

@ -1289,3 +1289,25 @@ _gtk_pango_get_text_at (PangoLayout *layout,
return g_utf8_substring (text, start, end);
}
static gboolean
attr_list_merge_filter (PangoAttribute *attribute,
gpointer list)
{
pango_attr_list_change (list, pango_attribute_copy (attribute));
return FALSE;
}
/*
* _gtk_pango_attr_list_merge:
* @into: a #PangoAttrList where attributes are merged.
* @from: a #PangoAttrList with the attributes to merge
*
* Merges attributes from @from into @into.
*/
void
_gtk_pango_attr_list_merge (PangoAttrList *into,
PangoAttrList *from)
{
pango_attr_list_filter (from, attr_list_merge_filter, into);
}

View File

@ -79,6 +79,9 @@ gchar *_gtk_pango_get_text_after (PangoLayout *layout,
gint *start_offset,
gint *end_offset);
void _gtk_pango_attr_list_merge (PangoAttrList *into,
PangoAttrList *from);
G_END_DECLS
#endif /* __GTK_PANGO_H__ */