forked from AuroraMiddleware/gtk
label: Don't use gtk_widget_peek_style_context
We may just not have a style context. And we can just as well go directly to the css styles.
This commit is contained in:
parent
d3857f8bd3
commit
e3afb2fec8
@ -54,6 +54,7 @@
|
||||
#include "gtknative.h"
|
||||
#include "gtkdragsource.h"
|
||||
#include "gtkdragicon.h"
|
||||
#include "gtkcsscolorvalueprivate.h"
|
||||
|
||||
#include "a11y/gtklabelaccessibleprivate.h"
|
||||
|
||||
@ -3308,7 +3309,7 @@ gtk_label_update_layout_attributes (GtkLabel *label)
|
||||
{
|
||||
GtkLabelPrivate *priv = gtk_label_get_instance_private (label);
|
||||
GtkWidget *widget = GTK_WIDGET (label);
|
||||
GtkStyleContext *context;
|
||||
GtkCssStyle *style;
|
||||
PangoAttrList *attrs;
|
||||
PangoAttrList *style_attrs;
|
||||
|
||||
@ -3318,11 +3319,10 @@ gtk_label_update_layout_attributes (GtkLabel *label)
|
||||
|
||||
if (priv->select_info && priv->select_info->links)
|
||||
{
|
||||
GdkRGBA link_color;
|
||||
const GdkRGBA *link_color;
|
||||
PangoAttribute *attribute;
|
||||
GList *list;
|
||||
|
||||
context = gtk_widget_get_style_context (widget);
|
||||
attrs = pango_attr_list_new ();
|
||||
|
||||
for (list = priv->select_info->links; list; list = list->next)
|
||||
@ -3334,13 +3334,12 @@ gtk_label_update_layout_attributes (GtkLabel *label)
|
||||
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, &link_color);
|
||||
gtk_style_context_restore (context);
|
||||
style = gtk_css_node_get_style (link->cssnode);
|
||||
link_color = gtk_css_color_value_get_rgba (style->core->color);
|
||||
|
||||
attribute = pango_attr_foreground_new (link_color.red * 65535,
|
||||
link_color.green * 65535,
|
||||
link_color.blue * 65535);
|
||||
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);
|
||||
@ -3351,15 +3350,11 @@ gtk_label_update_layout_attributes (GtkLabel *label)
|
||||
else
|
||||
attrs = NULL;
|
||||
|
||||
if ((context = _gtk_widget_peek_style_context (widget)))
|
||||
{
|
||||
style_attrs = _gtk_style_context_get_pango_attributes (context);
|
||||
|
||||
attrs = _gtk_pango_attr_list_merge (attrs, style_attrs);
|
||||
|
||||
if (style_attrs)
|
||||
pango_attr_list_unref (style_attrs);
|
||||
}
|
||||
style = gtk_css_node_get_style (gtk_widget_get_css_node (widget));
|
||||
style_attrs = gtk_css_style_get_pango_attributes (style);
|
||||
attrs = _gtk_pango_attr_list_merge (attrs, style_attrs);
|
||||
if (style_attrs)
|
||||
pango_attr_list_unref (style_attrs);
|
||||
|
||||
attrs = _gtk_pango_attr_list_merge (attrs, priv->markup_attrs);
|
||||
attrs = _gtk_pango_attr_list_merge (attrs, priv->attrs);
|
||||
|
Loading…
Reference in New Issue
Block a user