diff options
author | Andreas Kling <awesomekling@gmail.com> | 2019-10-17 23:34:52 +0200 |
---|---|---|
committer | Andreas Kling <awesomekling@gmail.com> | 2019-10-17 23:39:31 +0200 |
commit | 6c22b46b37c271deb6cd7989c6949efcca2f8a13 (patch) | |
tree | e8227ce2214885f67883b995d22f2f1af675abf5 /Libraries/LibHTML | |
parent | b4c2621ed70798c29e80e01e11c030067c1ccc9c (diff) | |
download | serenity-6c22b46b37c271deb6cd7989c6949efcca2f8a13.zip |
LibHTML: Hard-code LayoutTable to never have inline children
This is a total hack to get around the auto-detection mechanism for
whether a block has inline or block children. We'll say that tables
never have inline children for now, and then anything that actually
turns out to be an inline child will just be ignored by layout.
Diffstat (limited to 'Libraries/LibHTML')
-rw-r--r-- | Libraries/LibHTML/Layout/LayoutTreeBuilder.cpp | 5 |
1 files changed, 5 insertions, 0 deletions
diff --git a/Libraries/LibHTML/Layout/LayoutTreeBuilder.cpp b/Libraries/LibHTML/Layout/LayoutTreeBuilder.cpp index 571734134b..c690818dec 100644 --- a/Libraries/LibHTML/Layout/LayoutTreeBuilder.cpp +++ b/Libraries/LibHTML/Layout/LayoutTreeBuilder.cpp @@ -1,6 +1,7 @@ #include <LibHTML/DOM/Document.h> #include <LibHTML/DOM/ParentNode.h> #include <LibHTML/Layout/LayoutNode.h> +#include <LibHTML/Layout/LayoutTable.h> #include <LibHTML/Layout/LayoutText.h> #include <LibHTML/Layout/LayoutTreeBuilder.h> @@ -45,6 +46,10 @@ static RefPtr<LayoutNode> create_layout_tree(Node& node, const StyleProperties* if (have_inline_children && !have_block_children) layout_node->set_children_are_inline(true); + // FIXME: This is really hackish. Some layout nodes don't care about inline children. + if (is<LayoutTable>(layout_node)) + layout_node->set_children_are_inline(false); + return layout_node; } |