diff --git a/System/Libraries/Html/Renderer.HC b/System/Libraries/Html/Renderer.HC index d485d25..279ab6a 100644 --- a/System/Libraries/Html/Renderer.HC +++ b/System/Libraries/Html/Renderer.HC @@ -757,6 +757,10 @@ Bool @apply_css_rules_to_node(@html_dom_node* node, HtmlRenderer* renderer) Bool matched = FALSE; Bool should_display = TRUE; + // Set initial values for node width/height to undefined + node->width = -1; + node->height = -1; + if (block_level_element_tag_names->contains(node->tagName)) { node->display = CSS_DISPLAY_BLOCK; } @@ -937,9 +941,9 @@ U0 @render_form_element(@html_dom_node* node, HtmlRenderer* renderer) CheckBoxWidget* cb = NULL; if (!StrICmp(type, "checkbox")) { - if (!node->width) + if (node->width < 0) width = 14; - if (!node->height) + if (node->height < 0) height = 14; cb = Gui.CreateWidget(renderer->win, WIDGET_TYPE_CHECKBOX, U64_MAX, U64_MAX, width, height); // FIXME: Derive width/height cb->checked = node->attributes->@("checked"); @@ -949,9 +953,9 @@ U0 @render_form_element(@html_dom_node* node, HtmlRenderer* renderer) } if (!StrICmp(type, "button")) { - if (!node->width) + if (node->width < 0) width = 64; - if (!node->height) + if (node->height < 0) height = 16; btn = Gui.CreateWidget(renderer->win, WIDGET_TYPE_BUTTON, U64_MAX, U64_MAX, width, height); // FIXME: Derive width/height btn->data = node; @@ -961,9 +965,9 @@ U0 @render_form_element(@html_dom_node* node, HtmlRenderer* renderer) } if (!StrICmp(type, "submit")) { - if (!node->width) + if (node->width < 0) width = 64; - if (!node->height) + if (node->height < 0) height = 16; btn = Gui.CreateWidget(renderer->win, WIDGET_TYPE_BUTTON, U64_MAX, U64_MAX, width, height); // FIXME: Derive width/height btn->data = node; @@ -974,9 +978,9 @@ U0 @render_form_element(@html_dom_node* node, HtmlRenderer* renderer) } if (!type || !StrICmp(type, "text")) { - if (!node->width) + if (node->width < 0) width = 64; - if (!node->height) + if (node->height < 0) height = 16; if (node->attributes->@("width")) { width = 8 * Str2I64(node->attributes->@("width")); @@ -998,9 +1002,9 @@ U0 @render_form_element(@html_dom_node* node, HtmlRenderer* renderer) } if (!StrICmp(type, "password")) { - if (!node->width) + if (node->width < 0) width = 64; - if (!node->height) + if (node->height < 0) height = 16; if (node->attributes->@("width")) { width = 8 * Str2I64(node->attributes->@("width")); @@ -1316,7 +1320,7 @@ U0 @render_node_list(@html_dom_node* node, HtmlRenderer* renderer) } if (!StrICmp(node->tagName, "img")) { - if (!node->width || !node->height) { + if (node->width < 0 || node->height < 0) { node->width = 32; node->height = 32; }