cssstyle: set font variations in get_pango_font()

Doesn't make sense to set all the css values on the font description in
there except for the font variations, so do these here as well.
This commit is contained in:
Timm Bäder 2020-01-16 11:33:12 +01:00
parent dda54b2b8f
commit 119ebe1d70
2 changed files with 7 additions and 10 deletions

View File

@ -31,7 +31,7 @@
#include "gtkcsscolorvalueprivate.h"
#include "gtkcssshorthandpropertyprivate.h"
#include "gtkcssstringvalueprivate.h"
#include "gtkcssfontsizevalueprivate.h"
#include "gtkcssfontvariationsvalueprivate.h"
#include "gtkcssfontfeaturesvalueprivate.h"
#include "gtkcssstylepropertyprivate.h"
#include "gtkcsstransitionprivate.h"
@ -429,6 +429,7 @@ gtk_css_style_get_pango_font (GtkCssStyle *style)
{
PangoFontDescription *description;
GtkCssValue *v;
char *str;
description = pango_font_description_new ();
@ -466,5 +467,10 @@ gtk_css_style_get_pango_font (GtkCssStyle *style)
v = gtk_css_style_get_value (style, GTK_CSS_PROPERTY_FONT_STRETCH);
pango_font_description_set_stretch (description, _gtk_css_font_stretch_value_get (v));
v = gtk_css_style_get_value (style, GTK_CSS_PROPERTY_FONT_VARIATION_SETTINGS);
str = gtk_css_font_variations_value_get_variations (v);
pango_font_description_set_variations (description, str);
g_free (str);
return description;
}

View File

@ -6587,20 +6587,11 @@ update_pango_context (GtkWidget *widget,
PangoFontDescription *font_desc;
GtkSettings *settings;
cairo_font_options_t *font_options;
GtkCssValue *value;
char *variations;
font_desc = gtk_css_style_get_pango_font (style);
value = _gtk_style_context_peek_property (_gtk_widget_get_style_context (widget), GTK_CSS_PROPERTY_FONT_VARIATION_SETTINGS);
variations = gtk_css_font_variations_value_get_variations (value);
pango_font_description_set_variations (font_desc, variations);
pango_context_set_font_description (context, font_desc);
pango_font_description_free (font_desc);
g_free (variations);
pango_context_set_base_dir (context,
_gtk_widget_get_direction (widget) == GTK_TEXT_DIR_LTR ?