diff --git a/Tests/LibWeb/Layout/expected/block-and-inline/atomic-inline-with-white-space-nowrap.txt b/Tests/LibWeb/Layout/expected/block-and-inline/atomic-inline-with-white-space-nowrap.txt new file mode 100644 index 00000000000..03efc0b991d --- /dev/null +++ b/Tests/LibWeb/Layout/expected/block-and-inline/atomic-inline-with-white-space-nowrap.txt @@ -0,0 +1,18 @@ +Viewport <#document> at (0,0) content-size 800x600 children: not-inline + BlockContainer at (0,0) content-size 800x33.46875 [BFC] children: not-inline + BlockContainer at (8,8) content-size 37.15625x17.46875 children: not-inline + BlockContainer
at (8,8) content-size 37.15625x17.46875 children: inline + line 0 width: 37.15625, height: 17.46875, bottom: 17.46875, baseline: 13.53125 + frag 0 from TextNode start: 0, length: 3, rect: [8,8 27.15625x17.46875] + "foo" + frag 1 from ImageBox start: 0, length: 0, rect: [35,11 10x10] + TextNode <#text> + ImageBox at (35,11) content-size 10x10 children: not-inline + TextNode <#text> + +ViewportPaintable (Viewport<#document>) [0,0 800x600] + PaintableWithLines (BlockContainer) [0,0 800x33.46875] + PaintableWithLines (BlockContainer) [8,8 37.15625x17.46875] + PaintableWithLines (BlockContainer
) [8,8 37.15625x17.46875] + TextPaintable (TextNode<#text>) + ImagePaintable (ImageBox) [35,11 10x10] diff --git a/Tests/LibWeb/Layout/input/block-and-inline/atomic-inline-with-white-space-nowrap.html b/Tests/LibWeb/Layout/input/block-and-inline/atomic-inline-with-white-space-nowrap.html new file mode 100644 index 00000000000..942f002bf5d --- /dev/null +++ b/Tests/LibWeb/Layout/input/block-and-inline/atomic-inline-with-white-space-nowrap.html @@ -0,0 +1,8 @@ +
foo diff --git a/Userland/Libraries/LibWeb/Layout/InlineFormattingContext.cpp b/Userland/Libraries/LibWeb/Layout/InlineFormattingContext.cpp index 1a544056f43..98e577146ef 100644 --- a/Userland/Libraries/LibWeb/Layout/InlineFormattingContext.cpp +++ b/Userland/Libraries/LibWeb/Layout/InlineFormattingContext.cpp @@ -272,7 +272,9 @@ void InlineFormattingContext::generate_line_boxes(LayoutMode layout_mode) case InlineLevelIterator::Item::Type::Element: { auto& box = verify_cast(*item.node); compute_inset(box); - line_builder.break_if_needed(item.border_box_width()); + if (containing_block().computed_values().white_space() != CSS::WhiteSpace::Nowrap) { + line_builder.break_if_needed(item.border_box_width()); + } line_builder.append_box(box, item.border_start + item.padding_start, item.padding_end + item.border_end, item.margin_start, item.margin_end); break; }