diff options
-rw-r--r-- | components/layout/fragment.rs | 12 | ||||
-rw-r--r-- | tests/ref/basic.list | 1 | ||||
-rw-r--r-- | tests/ref/inline_block_with_margin_a.html | 25 | ||||
-rw-r--r-- | tests/ref/inline_block_with_margin_ref.html | 30 |
4 files changed, 65 insertions, 3 deletions
diff --git a/components/layout/fragment.rs b/components/layout/fragment.rs index d423cfc1555..6433ba9cd4b 100644 --- a/components/layout/fragment.rs +++ b/components/layout/fragment.rs @@ -1166,8 +1166,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(); @@ -1421,7 +1425,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 @@ +<!DOCTYPE html> +<html> + <head> + <style type="text/css"> + @font-face { + font-family: 'ahem'; + src: url(fonts/ahem/ahem.ttf); + } + body { + margin: 0; + font-family: 'ahem'; + font-size: 100px; + line-height: 1; + } + span { + display: inline-block; + color: yellow; + margin-left: 50px; + } + </style> + </head> + <body> + <div><span>X X</span></div> + </body> +</html> 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 @@ +<!DOCTYPE html> +<html> + <head> + <style type="text/css"> + body { + margin: 0; + } + .block0 { + position: absolute; + background-color: yellow; + left: 50px; + top: 0px; + width: 100px; + height: 100px; + } + .block1 { + position: absolute; + background-color: yellow; + left: 250px; + top: 0px; + width: 100px; + height: 100px; + } + </style> + </head> + <body> + <div class="block0"></div> + <div class="block1"></div> + </body> +</html> |