diff --git a/components/layout/fragment.rs b/components/layout/fragment.rs index 4ff04389836..841ed1f6b1c 100644 --- a/components/layout/fragment.rs +++ b/components/layout/fragment.rs @@ -1165,8 +1165,12 @@ impl Fragment { TableWrapperFragment => {} InlineBlockFragment(ref mut info) => { let block_flow = info.flow_ref.get_mut().as_block(); - result.minimum_inline_size = geometry::max(result.minimum_inline_size, block_flow.base.intrinsic_inline_sizes.minimum_inline_size); - result.preferred_inline_size = geometry::max(result.preferred_inline_size, block_flow.base.intrinsic_inline_sizes.preferred_inline_size); + result.minimum_inline_size = geometry::max(result.minimum_inline_size, + block_flow.base.intrinsic_inline_sizes.minimum_inline_size + + block_flow.base.intrinsic_inline_sizes.surround_inline_size); + result.preferred_inline_size = geometry::max(result.preferred_inline_size, + block_flow.base.intrinsic_inline_sizes.preferred_inline_size + + block_flow.base.intrinsic_inline_sizes.surround_inline_size); }, ImageFragment(ref mut image_fragment_info) => { let image_inline_size = image_fragment_info.image_inline_size(); @@ -1420,7 +1424,9 @@ impl Fragment { match self.specific { InlineBlockFragment(ref mut info) => { let block_flow = info.flow_ref.get_mut().as_block(); - self.border_box.size.inline = block_flow.base.intrinsic_inline_sizes.preferred_inline_size + noncontent_inline_size; + self.border_box.size.inline = block_flow.base.intrinsic_inline_sizes.preferred_inline_size + + block_flow.base.intrinsic_inline_sizes.surround_inline_size + + noncontent_inline_size; block_flow.base.position.size.inline = self.border_box.size.inline; } ScannedTextFragment(_) => { diff --git a/tests/ref/basic.list b/tests/ref/basic.list index 87ba15eac36..7d9a8631935 100644 --- a/tests/ref/basic.list +++ b/tests/ref/basic.list @@ -130,3 +130,4 @@ flaky_gpu,flaky_linux == acid2_noscroll.html acid2_ref_broken.html == table_containing_block_a.html table_containing_block_ref.html == link_style_order.html link_style_order_ref.html == percent_height.html percent_height_ref.html +== inline_block_with_margin_a.html inline_block_with_margin_ref.html diff --git a/tests/ref/inline_block_with_margin_a.html b/tests/ref/inline_block_with_margin_a.html new file mode 100644 index 00000000000..15f94895579 --- /dev/null +++ b/tests/ref/inline_block_with_margin_a.html @@ -0,0 +1,25 @@ + + + + + + +
X X
+ + diff --git a/tests/ref/inline_block_with_margin_ref.html b/tests/ref/inline_block_with_margin_ref.html new file mode 100644 index 00000000000..eca34995e51 --- /dev/null +++ b/tests/ref/inline_block_with_margin_ref.html @@ -0,0 +1,30 @@ + + + + + + +
+
+ +