System/Libraries/Html/Renderer: Apply bgcolor/color element attribute values to CSS
This commit is contained in:
parent
17910faac2
commit
603e1d15ab
1 changed files with 23 additions and 1 deletions
|
@ -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
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue