[librsvg] bgo#764808 - start off with state->current_color = black
- From: Federico Mena Quintero <federico src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [librsvg] bgo#764808 - start off with state->current_color = black
- Date: Tue, 12 Apr 2016 21:53:44 +0000 (UTC)
commit aec5f5c34a233cae4d21284f55c2af2e4ddb0b3b
Author: Federico Mena Quintero <federico gnome org>
Date: Tue Apr 12 16:52:51 2016 -0500
bgo#764808 - start off with state->current_color = black
When SVG comes in with e.g. fill="currentColor", it means that the content is likely
being embedded into other content, and expects the CSS to cascade appropriately. For
example, if there is an SVG for an equation and it gets inserted into an HTML paragraph
of text, then the equation should have the same color as the text.
However, librsvg doesn't allow passing in a current-state-of-CSS; it always starts
off fresh. So, here we make it start with the current_color being opaque black,
instead of transparent (all-bits-zero due to initialization).
This will at least make things visible. Later we can explore inheriting the cairo_t's
current colors.
https://bugzilla.gnome.org/show_bug.cgi?id=764808
rsvg-styles.c | 4 ++++
1 files changed, 4 insertions(+), 0 deletions(-)
---
diff --git a/rsvg-styles.c b/rsvg-styles.c
index 4639f51..948333e 100644
--- a/rsvg-styles.c
+++ b/rsvg-styles.c
@@ -119,6 +119,10 @@ rsvg_state_init (RsvgState * state)
state->mask = NULL;
state->opacity = 0xff;
state->baseline_shift = 0.;
+ state->current_color = 0xff000000; /* See bgo#764808; we don't inherit CSS
+ * from the public API, so start off with
+ * opaque black instead of transparent.
+ */
state->fill = rsvg_paint_server_parse (NULL, "#000");
state->fill_opacity = 0xff;
state->stroke_opacity = 0xff;
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]