Commit 34264667 authored by Matthias Clasen's avatar Matthias Clasen

Use CSS for styling links in labels

This was implemented only halfway, and was hardcoding the
underline. We don't need to do that anymore.
parent 790d5960
......@@ -3481,6 +3481,18 @@ G_GNUC_END_IGNORE_DEPRECATIONS
}
}
static gboolean
filter_func (PangoAttribute *attribute,
gpointer data)
{
GtkLabelLink *link = data;
attribute->start_index = link->start;
attribute->end_index = link->end;
return FALSE;
}
static void
gtk_label_update_layout_attributes (GtkLabel *label)
{
......@@ -3497,8 +3509,6 @@ gtk_label_update_layout_attributes (GtkLabel *label)
if (priv->select_info && priv->select_info->links)
{
GdkRGBA link_color;
PangoAttribute *attribute;
GList *list;
attrs = pango_attr_list_new ();
......@@ -3507,21 +3517,14 @@ gtk_label_update_layout_attributes (GtkLabel *label)
{
GtkLabelLink *link = list->data;
attribute = pango_attr_underline_new (TRUE);
attribute->start_index = link->start;
attribute->end_index = link->end;
pango_attr_list_insert (attrs, attribute);
gtk_style_context_save_to_node (context, link->cssnode);
gtk_style_context_get_color (context, gtk_style_context_get_state (context), &link_color);
style_attrs = _gtk_style_context_get_pango_attributes (context);
if (style_attrs)
{
pango_attr_list_filter (style_attrs, filter_func, link);
attrs = _gtk_pango_attr_list_merge (attrs, style_attrs);
}
gtk_style_context_restore (context);
attribute = pango_attr_foreground_new (link_color.red * 65535,
link_color.green * 65535,
link_color.blue * 65535);
attribute->start_index = link->start;
attribute->end_index = link->end;
pango_attr_list_insert (attrs, attribute);
}
}
else if (priv->markup_attrs && priv->attrs)
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment