From 9d9fb80aa9953105f512d32ab4084a31895a820c Mon Sep 17 00:00:00 2001 From: Alec Murphy Date: Sat, 26 Apr 2025 10:31:11 -0400 Subject: [PATCH] System/Libraries/Html/Renderer: Set node->display and debugging values earlier --- System/Libraries/Html/Renderer.HC | 17 ++++++++--------- 1 file changed, 8 insertions(+), 9 deletions(-) diff --git a/System/Libraries/Html/Renderer.HC b/System/Libraries/Html/Renderer.HC index f21d1a5..5ab6133 100644 --- a/System/Libraries/Html/Renderer.HC +++ b/System/Libraries/Html/Renderer.HC @@ -724,6 +724,8 @@ U0 @dump_node_indent(HtmlRenderer* renderer) " "; } +JsonArray* block_level_element_tag_names = Json.Parse("[\"address\",\"article\",\"aside\",\"blockquote\",\"canvas\",\"dd\",\"div\",\"dl\",\"dt\",\"fieldset\",\"figcaption\",\"figure\",\"footer\",\"form\",\"h1\",\"h2\",\"h3\",\"h4\",\"h5\",\"h6\",\"header\",\"hr\",\"li\",\"main\",\"nav\",\"noscript\",\"ol\",\"p\",\"pre\",\"section\",\"table\",\"tfoot\",\"ul\",\"video\"]", erythros_mem_task); +JsonArray* parent_nodes_excluded_from_text_rendering = Json.Parse("[\"option\",\"script\",\"style\",\"title\"]", erythros_mem_task); JsonArray* text_align_values = Json.Parse("[\"left\",\"center\",\"right\"]", erythros_mem_task); JsonArray* display_values = Json.Parse("[\"none\",\"block\",\"inline\",\"inline-block\"]", erythros_mem_task); @@ -755,6 +757,10 @@ Bool @apply_css_rules_to_node(@html_dom_node* node, HtmlRenderer* renderer) Bool matched = FALSE; Bool should_display = TRUE; + if (block_level_element_tag_names->contains(node->tagName)) { + node->display = CSS_DISPLAY_BLOCK; + } + @inherit_css_values_from_parent_node(node); if (renderer->debug) @dump_node_info(node, renderer, "Inherited CSS values from parentNode:"); @@ -1017,9 +1023,6 @@ U0 @render_form_element(@html_dom_node* node, HtmlRenderer* renderer) } } -JsonArray* parent_nodes_excluded_from_text_rendering = Json.Parse("[\"option\",\"script\",\"style\",\"title\"]", erythros_mem_task); -JsonArray* block_level_element_tag_names = Json.Parse("[\"address\",\"article\",\"aside\",\"blockquote\",\"canvas\",\"dd\",\"div\",\"dl\",\"dt\",\"fieldset\",\"figcaption\",\"figure\",\"footer\",\"form\",\"h1\",\"h2\",\"h3\",\"h4\",\"h5\",\"h6\",\"header\",\"hr\",\"li\",\"main\",\"nav\",\"noscript\",\"ol\",\"p\",\"pre\",\"section\",\"table\",\"tfoot\",\"ul\",\"video\"]", erythros_mem_task); - #define ADD_BYTE_TO_CODE_POINT_VALUE code_point = ((code_point << 6) | text[++i] & 0x3f); #define ADD_TWO_BYTES_TO_CODE_POINT_VALUE ADD_BYTE_TO_CODE_POINT_VALUE ADD_BYTE_TO_CODE_POINT_VALUE #define ADD_THREE_BYTES_TO_CODE_POINT_VALUE ADD_TWO_BYTES_TO_CODE_POINT_VALUE ADD_BYTE_TO_CODE_POINT_VALUE @@ -1248,6 +1251,8 @@ U0 @render_node_list(@html_dom_node* node, HtmlRenderer* renderer) if (!node || !renderer) return; + ++renderer->indent; + I64 i; U8 buf[HTML_WORK_BUFFER_SIZE]; U8* dump_text; @@ -1255,16 +1260,10 @@ U0 @render_node_list(@html_dom_node* node, HtmlRenderer* renderer) Context2DWidget* block_widget; Context2DWidget* img_widget; - if (block_level_element_tag_names->contains(node->tagName)) { - node->display = CSS_DISPLAY_BLOCK; - } - if (StrICmp(node->tagName, "InternalTextNode")) if (!@apply_css_rules_to_node(node, renderer)) return; - ++renderer->indent; - @apply_attribute_values_to_node(node); // Insert a block widget for the element's opening tag