diff --git a/System/Libraries/Html/Renderer.HC b/System/Libraries/Html/Renderer.HC
index 42252a3..49e990c 100644
--- a/System/Libraries/Html/Renderer.HC
+++ b/System/Libraries/Html/Renderer.HC
@@ -248,6 +248,13 @@ Bool @render_css_for_node(@html_dom_node* node, HtmlRenderer* renderer)
U8 node_ptr_string[32];
U8* tmpmd5;
+ if (!node)
+ return FALSE;
+ if (node->parentNode) {
+ node->backgroundColor = node->parentNode->backgroundColor;
+ node->color = node->parentNode->color;
+ }
+
for (i = 0; i < renderer->css_rules->length; i++) {
rule = renderer->css_rules->@(i);
matched = FALSE;
@@ -584,7 +591,7 @@ U0 @render_node_text(@html_dom_node* node, HtmlRenderer* renderer)
fragment_widget = Gui.CreateWidget(renderer->win, WIDGET_TYPE_CONTEXT2D,
U64_MAX, U64_MAX, 0, 0);
fragment_widget->data = node;
- fragment_widget->ctx = NewContext2D(text_width, ToI64(font_size * 1.5))->fill(Color(255, 255, 255))->text(font_name, 0, 0, font_size, node->parentNode->color, fragment[i]);
+ fragment_widget->ctx = NewContext2D(text_width, ToI64(font_size * 1.5))->fill(node->parentNode->backgroundColor)->text(font_name, 0, 0, font_size, node->parentNode->color, fragment[i]);
fragment_widget->width = fragment_widget->ctx->width;
fragment_widget->height = fragment_widget->ctx->height;
}
@@ -623,6 +630,21 @@ U0 @render_node_list(@html_dom_node* node, HtmlRenderer* renderer)
if (!@render_css_for_node(node, renderer))
return;
+ if (node->attributes->@("bgcolor")) {
+ if (@css_named_colors->@(node->attributes->@("bgcolor"))) {
+ node->backgroundColor = @css_resolve_color_from_rrggbb(@css_named_colors->@(node->attributes->@("bgcolor")));
+ } else if (node->attributes->@("bgcolor")(U8*)[0] == '#') {
+ node->backgroundColor = @css_resolve_color_from_rrggbb(node->attributes->@("bgcolor"));
+ }
+ }
+ if (node->attributes->@("color")) {
+ if (@css_named_colors->@(node->attributes->@("color"))) {
+ node->color = @css_resolve_color_from_rrggbb(@css_named_colors->@(node->attributes->@("color")));
+ } else if (node->attributes->@("color")(U8*)[0] == '#') {
+ node->color = @css_resolve_color_from_rrggbb(node->attributes->@("color"));
+ }
+ }
+
Context2DWidget* block_widget;
// FIXME: Resolve if display: block is set