[gnome-shell/wip/carlosg/pango-renderer-color-glyphs] st: Apply css foreground color to text as a PangoAttribute



commit 37a4aa9a2ca8f64cfe53ca5a87821fde354f551d
Author: Carlos Garnacho <carlosg gnome org>
Date:   Wed Mar 25 00:34:58 2020 +0100

    st: Apply css foreground color to text as a PangoAttribute
    
    Rely on the Pango renderer handling this properly, instead of tinting
    the full ClutterText in the color specified through css.
    
    Also set the caret color explicitly, since it used to be set as a side
    offect of clutter_text_set_color(), but no longer is.
    
    Closes: https://gitlab.gnome.org/GNOME/gnome-shell/issues/850

 src/st/st-private.c | 11 ++++++++---
 1 file changed, 8 insertions(+), 3 deletions(-)
---
diff --git a/src/st/st-private.c b/src/st/st-private.c
index 3107a0cf2d..db18587c78 100644
--- a/src/st/st-private.c
+++ b/src/st/st-private.c
@@ -115,18 +115,23 @@ _st_set_text_from_style (ClutterText *text,
   StTextDecoration decoration;
   PangoAttrList *attribs = NULL;
   const PangoFontDescription *font;
+  PangoAttribute *foreground;
   StTextAlign align;
   gdouble spacing;
   gchar *font_features;
 
-  st_theme_node_get_foreground_color (theme_node, &color);
-  clutter_text_set_color (text, &color);
-
   font = st_theme_node_get_font (theme_node);
   clutter_text_set_font_description (text, (PangoFontDescription *) font);
 
   attribs = pango_attr_list_new ();
 
+  st_theme_node_get_foreground_color (theme_node, &color);
+  clutter_text_set_cursor_color (text, &color);
+  foreground = pango_attr_foreground_new (color.red * 255,
+                                          color.green * 255,
+                                          color.blue * 255);
+  pango_attr_list_insert (attribs, foreground);
+
   decoration = st_theme_node_get_text_decoration (theme_node);
   if (decoration)
     {


[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]