1
Fork 0
mirror of https://github.com/RGBCube/serenity synced 2025-05-31 14:28:12 +00:00

LibWeb: Don't prune whitespace nodes from layout tree

Various whitespace-related issues have been fixed, and support for the
different CSS white-space values is improved enough that I think we can
stop doing the hack where we just prune whitespace nodes from the tree
and actually let them show up.

This is a nice step forward for correctness with the slight downside of
cluttering up layout tree dumps with tons of whitespace text nodes.
But hey, that's the web we know & love. :^)

Fixes #4427.
This commit is contained in:
Andreas Kling 2021-01-06 14:48:54 +01:00
parent 29a4da30b7
commit 612827eff3
3 changed files with 0 additions and 24 deletions

View file

@ -91,18 +91,10 @@ void TreeBuilder::create_layout_tree(DOM::Node& dom_node)
if (dom_node.parent() && !dom_node.parent()->layout_node())
return;
const CSS::StyleProperties* parent_style = nullptr;
if (!m_parent_stack.is_empty() && m_parent_stack.last()->dom_node() && m_parent_stack.last()->dom_node()->is_element())
parent_style = downcast<DOM::Element>(*m_parent_stack.last()->dom_node()).specified_css_values();
auto layout_node = dom_node.create_layout_node();
if (!layout_node)
return;
// Discard empty whitespace nodes. This might not be ideal for correctness, but it does make the tree nicer.
if (is<TextNode>(*layout_node) && downcast<TextNode>(*layout_node).text_for_style(*parent_style) == " ")
return;
if (!dom_node.parent()) {
m_layout_root = layout_node;
} else {