/* Start by checking to see if qname is the universal selector */
state = (struct svgtiny_parse_state *)pw;
- if (lwc_string_isequal(qname->name,
- state->interned_universal, match) == lwc_error_ok) {
- if (*match) {
+ *match = dom_string_lwc_isequal(state->interned_universal, qname->name);
+ if (*match) {
/* It's the universal selector. In NetSurf, all node
* names match the universal selector, and nothing in
* the libcss documentation suggests another approach,
* so we follow NetSurf here. */
return CSS_OK;
- }
}
err = dom_node_get_node_name((dom_node *)node, &name);
/**
* User-agent defaults for CSS properties
*
- * For the moment, we provide no defaults, because libsvgtiny does not
- * yet support any CSS properties that might need them.
+ * Ideally we would provide _no_ defaults here, because we don't yet
+ * support any CSS properties that can use them. However, we run into
+ * libcss parent/child style composition issues unless these defaults
+ * are provided. And it's harmless to provide them, so let's do it.
*
* \param pw Pointer to the current SVG parser state; unused
* \param property LibCSS property identifier; unused
css_hint *hint)
{
UNUSED(pw);
- UNUSED(property);
- UNUSED(hint);
- return CSS_INVALID;
+ switch (property) {
+ case CSS_PROP_COLOR:
+ hint->data.color = 0xff000000;
+ hint->status = CSS_COLOR_COLOR;
+ break;
+ case CSS_PROP_FONT_FAMILY:
+ hint->data.strings = NULL;
+ hint->status = CSS_FONT_FAMILY_SANS_SERIF;
+ break;
+ case CSS_PROP_QUOTES:
+ hint->data.strings = NULL;
+ hint->status = CSS_QUOTES_NONE;
+ break;
+ case CSS_PROP_VOICE_FAMILY:
+ hint->data.strings = NULL;
+ hint->status = 0;
+ break;
+ default:
+ return CSS_INVALID;
+ }
+
+ return CSS_OK;
}
set_libcss_node_data,
get_libcss_node_data,
};
-
-