mirror of
https://github.com/LadybirdBrowser/ladybird.git
synced 2024-11-11 01:06:01 +03:00
LibWeb: Fix min-content width calculation in dimension_box_on_line()
If inline-block is sized under min-content width constraint we should use its min-content width instead of max-content width like it was before.
This commit is contained in:
parent
91bb3af505
commit
c41e742de4
Notes:
sideshowbarker
2024-07-17 10:08:28 +09:00
Author: https://github.com/kalenikaliaksandr Commit: https://github.com/SerenityOS/serenity/commit/c41e742de4 Pull-request: https://github.com/SerenityOS/serenity/pull/21464
@ -0,0 +1,35 @@
|
||||
Viewport <#document> at (0,0) content-size 800x600 children: not-inline
|
||||
BlockContainer <html> at (1,1) content-size 798x20 [BFC] children: not-inline
|
||||
BlockContainer <body> at (10,10) content-size 780x2 children: not-inline
|
||||
BlockContainer <div> at (11,11) content-size 500x0 positioned children: not-inline
|
||||
BlockContainer <h1> at (12,45.5) content-size 498x330.53125 positioned [BFC] children: inline
|
||||
line 0 width: 498, height: 330.53125, bottom: 330.53125, baseline: 43.28125
|
||||
frag 0 from BlockContainer start: 0, length: 0, rect: [13,46.5 496x328.53125]
|
||||
BlockContainer <span> at (13,46.5) content-size 496x328.53125 inline-block [BFC] children: inline
|
||||
line 0 width: 246.484375, height: 54.59375, bottom: 54.59375, baseline: 42.28125
|
||||
frag 0 from TextNode start: 0, length: 9, rect: [13,46.5 246.484375x54.59375]
|
||||
"Skew is a"
|
||||
line 1 width: 240.53125, height: 55.1875, bottom: 109.78125, baseline: 42.28125
|
||||
frag 0 from TextNode start: 10, length: 10, rect: [13,100.5 240.53125x54.59375]
|
||||
"web-first,"
|
||||
line 2 width: 377.9375, height: 54.78125, bottom: 163.96875, baseline: 42.28125
|
||||
frag 0 from TextNode start: 21, length: 14, rect: [13,155.5 377.9375x54.59375]
|
||||
"cross-platform"
|
||||
line 3 width: 314.015625, height: 55.375, bottom: 219.15625, baseline: 42.28125
|
||||
frag 0 from TextNode start: 36, length: 11, rect: [13,209.5 314.015625x54.59375]
|
||||
"programming"
|
||||
line 4 width: 415.734375, height: 54.96875, bottom: 273.34375, baseline: 42.28125
|
||||
frag 0 from TextNode start: 48, length: 16, rect: [13,264.5 415.734375x54.59375]
|
||||
"language with an"
|
||||
line 5 width: 492.671875, height: 55.5625, bottom: 328.53125, baseline: 42.28125
|
||||
frag 0 from TextNode start: 65, length: 20, rect: [13,318.5 492.671875x54.59375]
|
||||
"optimizing compiler."
|
||||
TextNode <#text>
|
||||
|
||||
ViewportPaintable (Viewport<#document>) [0,0 800x600]
|
||||
PaintableWithLines (BlockContainer<HTML>) [0,0 800x22] overflow: [1,1 798x376.03125]
|
||||
PaintableWithLines (BlockContainer<BODY>) [9,9 782x4] overflow: [10,10 780x367.03125]
|
||||
PaintableWithLines (BlockContainer<DIV>) [10,10 502x2] overflow: [11,44.5 500x332.53125]
|
||||
PaintableWithLines (BlockContainer<H1>) [11,44.5 500x332.53125]
|
||||
PaintableWithLines (BlockContainer<SPAN>) [12,45.5 498x330.53125]
|
||||
TextPaintable (TextNode<#text>)
|
@ -0,0 +1,18 @@
|
||||
<!DOCTYPE html><style type="text/css">
|
||||
* {
|
||||
border: 1px solid black;
|
||||
}
|
||||
div {
|
||||
position: relative;
|
||||
width: 500px;
|
||||
}
|
||||
h1 {
|
||||
position: absolute;
|
||||
top: 0;
|
||||
left: 0;
|
||||
font-size: 50px;
|
||||
}
|
||||
span {
|
||||
display: inline-block;
|
||||
}
|
||||
</style><div><h1><span>Skew is a web-first, cross-platform programming language with an optimizing compiler.</span></h1></div>
|
@ -144,6 +144,8 @@ void InlineFormattingContext::dimension_box_on_line(Box const& box, LayoutMode l
|
||||
- box_state.margin_right;
|
||||
|
||||
unconstrained_width = min(max(result.preferred_minimum_width, available_width), result.preferred_width);
|
||||
} else if (m_available_space->width.is_min_content()) {
|
||||
unconstrained_width = result.preferred_minimum_width;
|
||||
} else {
|
||||
unconstrained_width = result.preferred_width;
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user