diff --git a/Libraries/LibWeb/Layout/InlineFormattingContext.cpp b/Libraries/LibWeb/Layout/InlineFormattingContext.cpp index 9b772f2ffe9..c988b6811a0 100644 --- a/Libraries/LibWeb/Layout/InlineFormattingContext.cpp +++ b/Libraries/LibWeb/Layout/InlineFormattingContext.cpp @@ -13,8 +13,6 @@ #include #include #include -#include -#include namespace Web::Layout { @@ -285,8 +283,10 @@ void InlineFormattingContext::generate_line_boxes() line_builder.break_line(LineBuilder::ForcedBreak::Yes); if (item.node) { auto introduce_clearance = parent().clear_floating_boxes(*item.node, *this); - if (introduce_clearance == BlockFormattingContext::DidIntroduceClearance::Yes) + if (introduce_clearance == BlockFormattingContext::DidIntroduceClearance::Yes) { + line_builder.set_current_block_offset(vertical_float_clearance()); parent().reset_margin_state(); + } } break; } @@ -392,9 +392,8 @@ void InlineFormattingContext::generate_line_boxes() } } - for (auto& line_box : line_boxes) { + for (auto& line_box : line_boxes) line_box.trim_trailing_whitespace(); - } line_builder.remove_last_line_if_empty(); diff --git a/Libraries/LibWeb/Layout/LineBox.cpp b/Libraries/LibWeb/Layout/LineBox.cpp index 84467e40c63..b7062b5d71e 100644 --- a/Libraries/LibWeb/Layout/LineBox.cpp +++ b/Libraries/LibWeb/Layout/LineBox.cpp @@ -8,7 +8,6 @@ #include #include #include -#include #include #include #include diff --git a/Tests/LibWeb/Layout/expected/block-and-inline/float-clear-by-line-break.txt b/Tests/LibWeb/Layout/expected/block-and-inline/float-clear-by-line-break.txt index 2a0949a8709..d463537b824 100644 --- a/Tests/LibWeb/Layout/expected/block-and-inline/float-clear-by-line-break.txt +++ b/Tests/LibWeb/Layout/expected/block-and-inline/float-clear-by-line-break.txt @@ -1,34 +1,15 @@ 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 784x34 children: inline - BlockContainer at (8,8) content-size 100x17 floating [BFC] children: inline - frag 0 from TextNode start: 0, length: 1, rect: [8,8 14.265625x17] baseline: 13.296875 - "A" - TextNode <#text> - InlineNode - frag 0 from TextNode start: 0, length: 1, rect: [108,8 6.34375x17] baseline: 13.296875 - "1" - TextNode <#text> + BlockContainer at (0,0) content-size 800x133 [BFC] children: not-inline + BlockContainer at (8,8) content-size 784x117 children: inline + frag 0 from TextNode start: 1, length: 3, rect: [8,108 27.15625x17] baseline: 13.296875 + "foo" + BlockContainer at (8,8) content-size 100x100 floating [BFC] children: not-inline TextNode <#text> - BreakNode
+ BreakNode TextNode <#text> - BlockContainer at (8,25) content-size 100x17 floating [BFC] children: inline - frag 0 from TextNode start: 0, length: 1, rect: [8,25 9.34375x17] baseline: 13.296875 - "B" - TextNode <#text> - InlineNode - frag 0 from TextNode start: 0, length: 1, rect: [108,25 8.8125x17] baseline: 13.296875 - "2" - TextNode <#text> ViewportPaintable (Viewport<#document>) [0,0 800x600] - PaintableWithLines (BlockContainer) [0,0 800x600] - PaintableWithLines (BlockContainer) [8,8 784x34] - PaintableWithLines (BlockContainer.a) [8,8 100x17] - TextPaintable (TextNode<#text>) - PaintableWithLines (InlineNode) - TextPaintable (TextNode<#text>) - PaintableWithLines (BlockContainer.a) [8,25 100x17] - TextPaintable (TextNode<#text>) - PaintableWithLines (InlineNode) - TextPaintable (TextNode<#text>) + PaintableWithLines (BlockContainer) [0,0 800x133] + PaintableWithLines (BlockContainer) [8,8 784x117] + PaintableWithLines (BlockContainer
.a) [8,8 100x100] + TextPaintable (TextNode<#text>) diff --git a/Tests/LibWeb/Layout/input/block-and-inline/float-clear-by-line-break.html b/Tests/LibWeb/Layout/input/block-and-inline/float-clear-by-line-break.html index c9eb70f2a16..c949f7c549e 100644 --- a/Tests/LibWeb/Layout/input/block-and-inline/float-clear-by-line-break.html +++ b/Tests/LibWeb/Layout/input/block-and-inline/float-clear-by-line-break.html @@ -1,14 +1,15 @@ + - -A1 -
-B2 \ No newline at end of file +
+
+foo