diff options
author | Oriol Brufau <obrufau@igalia.com> | 2025-02-05 18:31:58 +0100 |
---|---|---|
committer | GitHub <noreply@github.com> | 2025-02-05 17:31:58 +0000 |
commit | eb0382449f4d8af58ab7c7c50026f5a1dea12497 (patch) | |
tree | c93da5699ab3b380fb07d3051ab9fc94569d2161 /components/layout_2020/table/layout.rs | |
parent | 3fe32cc059dfc263cef042441e0a7709316be4fe (diff) | |
download | servo-eb0382449f4d8af58ab7c7c50026f5a1dea12497.tar.gz servo-eb0382449f4d8af58ab7c7c50026f5a1dea12497.zip |
layout: Simplify `Table::compute_inline_content_sizes` (#35290)
Signed-off-by: Oriol Brufau <obrufau@igalia.com>
Diffstat (limited to 'components/layout_2020/table/layout.rs')
-rw-r--r-- | components/layout_2020/table/layout.rs | 33 |
1 files changed, 10 insertions, 23 deletions
diff --git a/components/layout_2020/table/layout.rs b/components/layout_2020/table/layout.rs index 8fa78b8a891..526e8d68120 100644 --- a/components/layout_2020/table/layout.rs +++ b/components/layout_2020/table/layout.rs @@ -2701,32 +2701,19 @@ impl ComputeInlineContentSizes for Table { Au::zero(), ); layout.compute_measures(layout_context, writing_mode); - let mut table_content_sizes = layout.compute_grid_min_max(); - let mut caption_minimum_inline_size = - layout.compute_caption_minimum_inline_size(layout_context); - if caption_minimum_inline_size > table_content_sizes.min_content || - caption_minimum_inline_size > table_content_sizes.max_content - { - // Padding and border should apply to the table grid, but they will be taken into - // account when computing the inline content sizes of the table wrapper (our parent), so - // this code removes their contribution from the inline content size of the caption. - let layout_style = self.layout_style(Some(&layout)); - let padding = layout_style - .padding(writing_mode) - .percentages_relative_to(Au::zero()); - let border = layout_style.border_width(writing_mode); - caption_minimum_inline_size -= padding.inline_sum() + border.inline_sum(); - table_content_sizes - .min_content - .max_assign(caption_minimum_inline_size); - table_content_sizes - .max_content - .max_assign(caption_minimum_inline_size); - } + let grid_content_sizes = layout.compute_grid_min_max(); + + // Padding and border should apply to the table grid, but they will be taken into + // account when computing the inline content sizes of the table wrapper (our parent), so + // this code removes their contribution from the inline content size of the caption. + let caption_content_sizes = ContentSizes::from( + layout.compute_caption_minimum_inline_size(layout_context) - + layout.pbm.padding_border_sums.inline, + ); InlineContentSizesResult { - sizes: table_content_sizes, + sizes: grid_content_sizes.max(caption_content_sizes), depends_on_block_constraints: false, } } |