diff --git a/Libraries/LibWeb/Layout/InlineLevelIterator.cpp b/Libraries/LibWeb/Layout/InlineLevelIterator.cpp index 8f416543c48..c8b021d232b 100644 --- a/Libraries/LibWeb/Layout/InlineLevelIterator.cpp +++ b/Libraries/LibWeb/Layout/InlineLevelIterator.cpp @@ -620,7 +620,6 @@ Optional InlineLevelIterator::next_without_lookahead( auto& box_state = m_layout_state.get(box); m_inline_formatting_context.dimension_box_on_line(box, m_layout_mode); - skip_to_next(); auto item = Item { .type = Item::Type::Element, .node = &box, @@ -635,6 +634,7 @@ Optional InlineLevelIterator::next_without_lookahead( .margin_end = box_state.margin_right, }; add_extra_box_model_metrics_to_item(item, true, true); + skip_to_next(); return item; } diff --git a/Tests/LibWeb/Layout/expected/block-and-inline/atomic-inline-with-percentage-vertical-align.txt b/Tests/LibWeb/Layout/expected/block-and-inline/atomic-inline-with-percentage-vertical-align.txt index 74c065e25ab..7fe49278206 100644 --- a/Tests/LibWeb/Layout/expected/block-and-inline/atomic-inline-with-percentage-vertical-align.txt +++ b/Tests/LibWeb/Layout/expected/block-and-inline/atomic-inline-with-percentage-vertical-align.txt @@ -1,14 +1,14 @@ Viewport <#document> at (0,0) content-size 800x600 children: not-inline BlockContainer at (1,1) content-size 798x62.40625 [BFC] children: not-inline BlockContainer at (2,2) content-size 796x60.40625 children: inline - frag 0 from BlockContainer start: 0, length: 0, rect: [4,3 30x30] baseline: 32 - frag 1 from BlockContainer start: 0, length: 0, rect: [3,35 30x30] baseline: 32 - BlockContainer at (4,3) content-size 30x30 inline-block [BFC] children: not-inline + frag 0 from BlockContainer start: 0, length: 0, rect: [3,3 30x30] baseline: 32 + frag 1 from BlockContainer start: 0, length: 0, rect: [4,35 30x30] baseline: 32 + BlockContainer at (3,3) content-size 30x30 inline-block [BFC] children: not-inline BreakNode
- BlockContainer at (3,35) content-size 30x30 inline-block [BFC] children: not-inline + BlockContainer at (4,35) content-size 30x30 inline-block [BFC] children: not-inline ViewportPaintable (Viewport<#document>) [0,0 800x600] PaintableWithLines (BlockContainer) [0,0 800x64.40625] overflow: [1,1 798x64] PaintableWithLines (BlockContainer) [1,1 798x62.40625] overflow: [2,2 796x63] - PaintableWithLines (BlockContainer
.clump) [3,2 32x32] - PaintableWithLines (BlockContainer
.clump) [2,34 32x32] + PaintableWithLines (BlockContainer
.clump) [2,2 32x32] + PaintableWithLines (BlockContainer
.clump) [3,34 32x32] diff --git a/Tests/LibWeb/Layout/expected/block-and-inline/inline-block-leading-and-trailing-metrics.txt b/Tests/LibWeb/Layout/expected/block-and-inline/inline-block-leading-and-trailing-metrics.txt new file mode 100644 index 00000000000..5c04415f728 --- /dev/null +++ b/Tests/LibWeb/Layout/expected/block-and-inline/inline-block-leading-and-trailing-metrics.txt @@ -0,0 +1,79 @@ +Viewport <#document> at (0,0) content-size 800x600 children: not-inline + BlockContainer at (0,0) content-size 800x76 [BFC] children: not-inline + BlockContainer at (8,8) content-size 784x60 children: not-inline + BlockContainer at (9,9) content-size 782x18 children: inline + frag 0 from BlockContainer start: 0, length: 0, rect: [9,9 88.453125x18] baseline: 13.796875 + BlockContainer at (9,9) content-size 88.453125x18 inline-block [BFC] children: inline + frag 0 from TextNode start: 0, length: 12, rect: [9,9 88.453125x18] baseline: 13.796875 + "inline-block" + TextNode <#text> + InlineNode + frag 0 from TextNode start: 0, length: 6, rect: [117.453125,9 41.296875x18] baseline: 13.796875 + "inline" + TextNode <#text> + InlineNode + frag 0 from TextNode start: 0, length: 6, rect: [158.75,9 41.296875x18] baseline: 13.796875 + "inline" + TextNode <#text> + BlockContainer <(anonymous)> at (8,28) content-size 784x0 children: inline + TextNode <#text> + BlockContainer at (9,29) content-size 782x18 children: inline + frag 0 from BlockContainer start: 0, length: 0, rect: [70.296875,29 88.453125x18] baseline: 13.796875 + InlineNode + frag 0 from TextNode start: 0, length: 6, rect: [9,29 41.296875x18] baseline: 13.796875 + "inline" + TextNode <#text> + BlockContainer at (70.296875,29) content-size 88.453125x18 inline-block [BFC] children: inline + frag 0 from TextNode start: 0, length: 12, rect: [70.296875,29 88.453125x18] baseline: 13.796875 + "inline-block" + TextNode <#text> + InlineNode + frag 0 from TextNode start: 0, length: 6, rect: [158.75,29 41.296875x18] baseline: 13.796875 + "inline" + TextNode <#text> + BlockContainer <(anonymous)> at (8,48) content-size 784x0 children: inline + TextNode <#text> + BlockContainer at (9,49) content-size 782x18 children: inline + frag 0 from BlockContainer start: 0, length: 0, rect: [131.59375,49 88.453125x18] baseline: 13.796875 + InlineNode + frag 0 from TextNode start: 0, length: 6, rect: [9,49 41.296875x18] baseline: 13.796875 + "inline" + TextNode <#text> + InlineNode + frag 0 from TextNode start: 0, length: 6, rect: [70.296875,49 41.296875x18] baseline: 13.796875 + "inline" + TextNode <#text> + BlockContainer at (131.59375,49) content-size 88.453125x18 inline-block [BFC] children: inline + frag 0 from TextNode start: 0, length: 12, rect: [131.59375,49 88.453125x18] baseline: 13.796875 + "inline-block" + TextNode <#text> + BlockContainer <(anonymous)> at (8,68) content-size 784x0 children: inline + TextNode <#text> + +ViewportPaintable (Viewport<#document>) [0,0 800x600] + PaintableWithLines (BlockContainer) [0,0 800x76] + PaintableWithLines (BlockContainer) [8,8 784x60] + PaintableWithLines (BlockContainer
#a) [8,8 784x20] + PaintableWithLines (BlockContainer) [9,9 88.453125x18] + TextPaintable (TextNode<#text>) + PaintableWithLines (InlineNode) + TextPaintable (TextNode<#text>) + PaintableWithLines (InlineNode) + TextPaintable (TextNode<#text>) + PaintableWithLines (BlockContainer(anonymous)) [8,28 784x0] + PaintableWithLines (BlockContainer
#b) [8,28 784x20] + PaintableWithLines (InlineNode) + TextPaintable (TextNode<#text>) + PaintableWithLines (BlockContainer) [70.296875,29 88.453125x18] + TextPaintable (TextNode<#text>) + PaintableWithLines (InlineNode) + TextPaintable (TextNode<#text>) + PaintableWithLines (BlockContainer(anonymous)) [8,48 784x0] + PaintableWithLines (BlockContainer
#c) [8,48 784x20] + PaintableWithLines (InlineNode) + TextPaintable (TextNode<#text>) + PaintableWithLines (InlineNode) + TextPaintable (TextNode<#text>) + PaintableWithLines (BlockContainer) [131.59375,49 88.453125x18] + TextPaintable (TextNode<#text>) + PaintableWithLines (BlockContainer(anonymous)) [8,68 784x0] diff --git a/Tests/LibWeb/Layout/input/block-and-inline/inline-block-leading-and-trailing-metrics.html b/Tests/LibWeb/Layout/input/block-and-inline/inline-block-leading-and-trailing-metrics.html new file mode 100644 index 00000000000..f70c04fe527 --- /dev/null +++ b/Tests/LibWeb/Layout/input/block-and-inline/inline-block-leading-and-trailing-metrics.html @@ -0,0 +1,28 @@ + + +
inline-blockinlineinline
+
inlineinline-blockinline
+
inlineinlineinline-block