summaryrefslogtreecommitdiff
path: root/gtk
diff options
context:
space:
mode:
authorBenjamin Otte <otte@redhat.com>2015-11-16 19:34:24 +0100
committerBenjamin Otte <otte@redhat.com>2015-11-16 19:34:24 +0100
commit9facd0088446b1b4162c350cf6e1ee28242c8325 (patch)
treef2d8f0cc314c896d764a59aafcf16b46749d69a8 /gtk
parent0a4e88b79b9fa20ae0bd61ff68e99abeb5753da3 (diff)
downloadgtk+-9facd0088446b1b4162c350cf6e1ee28242c8325.tar.gz
cssprovider: Only push a new scanner when none exists
For @import, we want to emit the error as part of the @import statement, not as part of the new file.
Diffstat (limited to 'gtk')
-rw-r--r--gtk/gtkcssprovider.c24
1 files changed, 16 insertions, 8 deletions
diff --git a/gtk/gtkcssprovider.c b/gtk/gtkcssprovider.c
index fbe9163dfd..5c179361ea 100644
--- a/gtk/gtkcssprovider.c
+++ b/gtk/gtkcssprovider.c
@@ -2728,13 +2728,18 @@ gtk_css_provider_load_internal (GtkCssProvider *css_provider,
}
else
{
- scanner = gtk_css_scanner_new (css_provider,
- parent,
- parent ? parent->section : NULL,
- file,
- "");
+ if (parent == NULL)
+ {
+ scanner = gtk_css_scanner_new (css_provider,
+ parent,
+ parent ? parent->section : NULL,
+ file,
+ "");
- gtk_css_scanner_push_section (scanner, GTK_CSS_SECTION_DOCUMENT);
+ gtk_css_scanner_push_section (scanner, GTK_CSS_SECTION_DOCUMENT);
+ }
+ else
+ scanner = parent;
gtk_css_provider_error (css_provider,
scanner,
@@ -2743,9 +2748,12 @@ gtk_css_provider_load_internal (GtkCssProvider *css_provider,
"Failed to import: %s",
load_error->message);
- gtk_css_scanner_pop_section (scanner, GTK_CSS_SECTION_DOCUMENT);
+ if (parent == NULL)
+ {
+ gtk_css_scanner_pop_section (scanner, GTK_CSS_SECTION_DOCUMENT);
- gtk_css_scanner_destroy (scanner);
+ gtk_css_scanner_destroy (scanner);
+ }
}
}