summaryrefslogtreecommitdiff
path: root/Userland/Libraries
diff options
context:
space:
mode:
authorSam Atkins <atkinssj@serenityos.org>2022-02-23 20:25:35 +0000
committerAndreas Kling <kling@serenityos.org>2022-02-25 19:35:34 +0100
commit7bb721bea2a6deaa7832b7533fc7a07f04e8c160 (patch)
treeaedb70f469080427cc5cf295d7bce984f6dc0029 /Userland/Libraries
parentadaab231496a05ac6e3ece59b6c97a8b7affb015 (diff)
downloadserenity-7bb721bea2a6deaa7832b7533fc7a07f04e8c160.zip
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.
Diffstat (limited to 'Userland/Libraries')
-rw-r--r--Userland/Libraries/LibWeb/DOM/Element.cpp8
-rw-r--r--Userland/Libraries/LibWeb/Layout/InlineNode.cpp4
-rw-r--r--Userland/Libraries/LibWeb/Layout/InlineNode.h2
-rw-r--r--Userland/Libraries/LibWeb/Layout/ListItemBox.cpp4
-rw-r--r--Userland/Libraries/LibWeb/Layout/ListItemBox.h2
-rw-r--r--Userland/Libraries/LibWeb/Layout/TableRowGroupBox.cpp4
-rw-r--r--Userland/Libraries/LibWeb/Layout/TableRowGroupBox.h2
7 files changed, 13 insertions, 13 deletions
diff --git a/Userland/Libraries/LibWeb/DOM/Element.cpp b/Userland/Libraries/LibWeb/DOM/Element.cpp
index 681e85bc49..4879c19fab 100644
--- a/Userland/Libraries/LibWeb/DOM/Element.cpp
+++ b/Userland/Libraries/LibWeb/DOM/Element.cpp
@@ -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())
diff --git a/Userland/Libraries/LibWeb/Layout/InlineNode.cpp b/Userland/Libraries/LibWeb/Layout/InlineNode.cpp
index a15e35bf7a..2422d4b356 100644
--- a/Userland/Libraries/LibWeb/Layout/InlineNode.cpp
+++ b/Userland/Libraries/LibWeb/Layout/InlineNode.cpp
@@ -17,8 +17,8 @@
namespace Web::Layout {
-InlineNode::InlineNode(DOM::Document& document, DOM::Element& element, NonnullRefPtr<CSS::StyleProperties> style)
- : Layout::NodeWithStyleAndBoxModelMetrics(document, &element, move(style))
+InlineNode::InlineNode(DOM::Document& document, DOM::Element* element, NonnullRefPtr<CSS::StyleProperties> style)
+ : Layout::NodeWithStyleAndBoxModelMetrics(document, element, move(style))
{
set_inline(true);
}
diff --git a/Userland/Libraries/LibWeb/Layout/InlineNode.h b/Userland/Libraries/LibWeb/Layout/InlineNode.h
index 0890641b1f..330f7caff0 100644
--- a/Userland/Libraries/LibWeb/Layout/InlineNode.h
+++ b/Userland/Libraries/LibWeb/Layout/InlineNode.h
@@ -12,7 +12,7 @@ namespace Web::Layout {
class InlineNode : public NodeWithStyleAndBoxModelMetrics {
public:
- InlineNode(DOM::Document&, DOM::Element&, NonnullRefPtr<CSS::StyleProperties>);
+ InlineNode(DOM::Document&, DOM::Element*, NonnullRefPtr<CSS::StyleProperties>);
virtual ~InlineNode() override;
virtual void paint(PaintContext&, PaintPhase) override;
diff --git a/Userland/Libraries/LibWeb/Layout/ListItemBox.cpp b/Userland/Libraries/LibWeb/Layout/ListItemBox.cpp
index a830b46c1f..cbad46707b 100644
--- a/Userland/Libraries/LibWeb/Layout/ListItemBox.cpp
+++ b/Userland/Libraries/LibWeb/Layout/ListItemBox.cpp
@@ -10,8 +10,8 @@
namespace Web::Layout {
-ListItemBox::ListItemBox(DOM::Document& document, DOM::Element& element, NonnullRefPtr<CSS::StyleProperties> style)
- : Layout::BlockContainer(document, &element, move(style))
+ListItemBox::ListItemBox(DOM::Document& document, DOM::Element* element, NonnullRefPtr<CSS::StyleProperties> style)
+ : Layout::BlockContainer(document, element, move(style))
{
}
diff --git a/Userland/Libraries/LibWeb/Layout/ListItemBox.h b/Userland/Libraries/LibWeb/Layout/ListItemBox.h
index eb08aea4fb..b285e2b0df 100644
--- a/Userland/Libraries/LibWeb/Layout/ListItemBox.h
+++ b/Userland/Libraries/LibWeb/Layout/ListItemBox.h
@@ -13,7 +13,7 @@ namespace Web::Layout {
class ListItemBox final : public BlockContainer {
public:
- ListItemBox(DOM::Document&, DOM::Element&, NonnullRefPtr<CSS::StyleProperties>);
+ ListItemBox(DOM::Document&, DOM::Element*, NonnullRefPtr<CSS::StyleProperties>);
virtual ~ListItemBox() override;
DOM::Element& dom_node() { return static_cast<DOM::Element&>(*BlockContainer::dom_node()); }
diff --git a/Userland/Libraries/LibWeb/Layout/TableRowGroupBox.cpp b/Userland/Libraries/LibWeb/Layout/TableRowGroupBox.cpp
index 261a200511..990e419341 100644
--- a/Userland/Libraries/LibWeb/Layout/TableRowGroupBox.cpp
+++ b/Userland/Libraries/LibWeb/Layout/TableRowGroupBox.cpp
@@ -11,8 +11,8 @@
namespace Web::Layout {
-TableRowGroupBox::TableRowGroupBox(DOM::Document& document, DOM::Element& element, NonnullRefPtr<CSS::StyleProperties> style)
- : Layout::BlockContainer(document, &element, move(style))
+TableRowGroupBox::TableRowGroupBox(DOM::Document& document, DOM::Element* element, NonnullRefPtr<CSS::StyleProperties> style)
+ : Layout::BlockContainer(document, element, move(style))
{
}
diff --git a/Userland/Libraries/LibWeb/Layout/TableRowGroupBox.h b/Userland/Libraries/LibWeb/Layout/TableRowGroupBox.h
index 977a3992a0..46ac7f4997 100644
--- a/Userland/Libraries/LibWeb/Layout/TableRowGroupBox.h
+++ b/Userland/Libraries/LibWeb/Layout/TableRowGroupBox.h
@@ -12,7 +12,7 @@ namespace Web::Layout {
class TableRowGroupBox final : public BlockContainer {
public:
- TableRowGroupBox(DOM::Document&, DOM::Element&, NonnullRefPtr<CSS::StyleProperties>);
+ TableRowGroupBox(DOM::Document&, DOM::Element*, NonnullRefPtr<CSS::StyleProperties>);
virtual ~TableRowGroupBox() override;
size_t column_count() const;