1
Fork 0
mirror of https://github.com/RGBCube/serenity synced 2025-07-25 19:17:44 +00:00

LibWeb: Make display: foo box constructors take the Element by pointer

This means we can instantiate them for pseudo-elements, which don't have
an associated Element. They all pass it to their parent as a
`Layout::Node*` and handle a lack of `layout_node()` already so this
won't affect any functionality.
This commit is contained in:
Sam Atkins 2022-02-23 20:25:35 +00:00 committed by Andreas Kling
parent adaab23149
commit 7bb721bea2
7 changed files with 13 additions and 13 deletions

View file

@ -205,7 +205,7 @@ RefPtr<Layout::Node> Element::create_layout_node(NonnullRefPtr<CSS::StylePropert
return adopt_ref(*new Layout::TableBox(document(), this, move(style)));
if (display.is_list_item())
return adopt_ref(*new Layout::ListItemBox(document(), *this, move(style)));
return adopt_ref(*new Layout::ListItemBox(document(), this, move(style)));
if (display.is_table_row())
return adopt_ref(*new Layout::TableRowBox(document(), this, move(style)));
@ -214,7 +214,7 @@ RefPtr<Layout::Node> Element::create_layout_node(NonnullRefPtr<CSS::StylePropert
return adopt_ref(*new Layout::TableCellBox(document(), this, move(style)));
if (display.is_table_row_group() || display.is_table_header_group() || display.is_table_footer_group())
return adopt_ref(*new Layout::TableRowGroupBox(document(), *this, move(style)));
return adopt_ref(*new Layout::TableRowGroupBox(document(), this, move(style)));
if (display.is_table_column() || display.is_table_column_group() || display.is_table_caption()) {
// FIXME: This is just an incorrect placeholder until we improve table layout support.
@ -228,10 +228,10 @@ RefPtr<Layout::Node> Element::create_layout_node(NonnullRefPtr<CSS::StylePropert
return block;
}
if (display.is_flow_inside())
return adopt_ref(*new Layout::InlineNode(document(), *this, move(style)));
return adopt_ref(*new Layout::InlineNode(document(), this, move(style)));
dbgln_if(LIBWEB_CSS_DEBUG, "FIXME: Support display: {}", display.to_string());
return adopt_ref(*new Layout::InlineNode(document(), *this, move(style)));
return adopt_ref(*new Layout::InlineNode(document(), this, move(style)));
}
if (display.is_flow_inside() || display.is_flow_root_inside() || display.is_flex_inside())