From accabe3eee4b7168c808e0f5a43c11156b13a33c Mon Sep 17 00:00:00 2001 From: Emmanuele Bassi Date: Wed, 29 May 2024 11:29:13 +0100 Subject: [PATCH] css: Create a section if the variable does not have one In case a variable definition does not have a CSS section associated to it, we fall back to the previous behaviour of creating a CSS section with the bounds of the error. See: https://gitlab.gnome.org/GNOME/gnome-build-meta/-/issues/841 --- gtk/gtkcssreferencevalue.c | 12 +++++++++++- 1 file changed, 11 insertions(+), 1 deletion(-) diff --git a/gtk/gtkcssreferencevalue.c b/gtk/gtkcssreferencevalue.c index 03f44b63ff..19092b2ca7 100644 --- a/gtk/gtkcssreferencevalue.c +++ b/gtk/gtkcssreferencevalue.c @@ -220,6 +220,8 @@ parser_error (GtkCssParser *parser, { for (int i = 0; i < n_vars; i++) { + GtkCssSection *section; + if (names[i + 1]) g_set_error (&new_error, GTK_CSS_PARSER_ERROR, GTK_CSS_PARSER_ERROR_UNKNOWN_VALUE, @@ -228,7 +230,15 @@ parser_error (GtkCssParser *parser, g_set_error_literal (&new_error, GTK_CSS_PARSER_ERROR, GTK_CSS_PARSER_ERROR_UNKNOWN_VALUE, error->message); - gtk_style_provider_emit_error (provider, vars[i]->section, new_error); + + if (vars[i]->section == NULL) + section = gtk_css_section_new (gtk_css_parser_get_file (parser), start, end); + else + section = gtk_css_section_ref (vars[i]->section); + + gtk_style_provider_emit_error (provider, section, new_error); + + gtk_css_section_unref (section); g_clear_error (&new_error); }