diff --git a/Tests/LibWeb/Layout/expected/block-and-inline/button-with-text-node-label-and-font-size.txt b/Tests/LibWeb/Layout/expected/block-and-inline/button-with-text-node-label-and-font-size.txt new file mode 100644 index 0000000000..618639063f --- /dev/null +++ b/Tests/LibWeb/Layout/expected/block-and-inline/button-with-text-node-label-and-font-size.txt @@ -0,0 +1,26 @@ +Viewport <#document> at (0,0) content-size 800x600 children: not-inline + BlockContainer at (0,0) content-size 800x600 [BFC] children: not-inline + BlockContainer at (8,8) content-size 784x56.40625 children: inline + line 0 width: 121.65625, height: 56.40625, bottom: 56.40625, baseline: 54.40625 + frag 0 from BlockContainer start: 0, length: 0, rect: [13,10 111.65625x52.40625] + BlockContainer \ No newline at end of file diff --git a/Userland/Libraries/LibWeb/Layout/Node.h b/Userland/Libraries/LibWeb/Layout/Node.h index e9d0905cb0..7ea6e14c98 100644 --- a/Userland/Libraries/LibWeb/Layout/Node.h +++ b/Userland/Libraries/LibWeb/Layout/Node.h @@ -208,6 +208,7 @@ public: Gfx::Font const& font() const { return *m_font; } CSSPixels line_height() const { return m_line_height; } void set_line_height(CSSPixels line_height) { m_line_height = line_height; } + void set_font(Gfx::Font const& font) { m_font = font; } Vector const& background_layers() const { return computed_values().background_layers(); } const CSS::AbstractImageStyleValue* list_style_image() const { return m_list_style_image; } diff --git a/Userland/Libraries/LibWeb/Layout/TreeBuilder.cpp b/Userland/Libraries/LibWeb/Layout/TreeBuilder.cpp index 6ad877c5af..83ea5cea6f 100644 --- a/Userland/Libraries/LibWeb/Layout/TreeBuilder.cpp +++ b/Userland/Libraries/LibWeb/Layout/TreeBuilder.cpp @@ -380,19 +380,19 @@ ErrorOr TreeBuilder::create_layout_tree(DOM::Node& dom_node, TreeBuilder:: auto& parent = *dom_node.layout_node(); // If the box does not overflow in the vertical axis, then it is centered vertically. - auto table_computed_values = CSS::ComputedValues(); + auto table_computed_values = parent.computed_values().clone_inherited_values(); static_cast(table_computed_values).set_display(CSS::Display::from_short(CSS::Display::Short::Table)); static_cast(table_computed_values).set_height(CSS::Size::make_percentage(CSS::Percentage(100))); - auto cell_computed_values = CSS::ComputedValues(); + auto cell_computed_values = parent.computed_values().clone_inherited_values(); static_cast(cell_computed_values).set_display(CSS::Display { CSS::Display::Internal::TableCell }); static_cast(cell_computed_values).set_vertical_align(CSS::VerticalAlign::Middle); - static_cast(cell_computed_values).set_white_space(CSS::WhiteSpace::Nowrap); auto table_wrapper = parent.heap().template allocate_without_realm(parent.document(), nullptr, move(table_computed_values)); auto cell_wrapper = parent.heap().template allocate_without_realm(parent.document(), nullptr, move(cell_computed_values)); cell_wrapper->set_line_height(parent.line_height()); + cell_wrapper->set_font(parent.font()); cell_wrapper->set_children_are_inline(parent.children_are_inline()); Vector> sequence;