diff options
author | Benjamin Otte <otte@redhat.com> | 2015-11-16 19:34:24 +0100 |
---|---|---|
committer | Benjamin Otte <otte@redhat.com> | 2015-11-16 19:34:24 +0100 |
commit | 9facd0088446b1b4162c350cf6e1ee28242c8325 (patch) | |
tree | f2d8f0cc314c896d764a59aafcf16b46749d69a8 /gtk | |
parent | 0a4e88b79b9fa20ae0bd61ff68e99abeb5753da3 (diff) | |
download | gtk+-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.c | 24 |
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); + } } } |