aboutsummaryrefslogtreecommitdiffstats
path: root/components/layout/table_wrapper.rs
diff options
context:
space:
mode:
Diffstat (limited to 'components/layout/table_wrapper.rs')
-rw-r--r--components/layout/table_wrapper.rs43
1 files changed, 24 insertions, 19 deletions
diff --git a/components/layout/table_wrapper.rs b/components/layout/table_wrapper.rs
index 26ff771e61b..3072b8f8573 100644
--- a/components/layout/table_wrapper.rs
+++ b/components/layout/table_wrapper.rs
@@ -848,25 +848,30 @@ fn initial_computed_inline_size(
preferred_width_of_all_columns: Au,
table_border_padding: Au,
) -> MaybeAuto {
- match block.fragment.style.content_inline_size() {
- Size::Auto => {
- if preferred_width_of_all_columns + table_border_padding <= containing_block_inline_size
- {
- MaybeAuto::Specified(preferred_width_of_all_columns + table_border_padding)
- } else if minimum_width_of_all_columns > containing_block_inline_size {
- MaybeAuto::Specified(minimum_width_of_all_columns)
- } else {
- MaybeAuto::Auto
- }
- },
- Size::LengthPercentage(ref lp) => {
- let used = lp.to_used_value(containing_block_inline_size);
- MaybeAuto::Specified(max(
- used - table_border_padding,
- minimum_width_of_all_columns,
- ))
- },
- }
+ block
+ .fragment
+ .style
+ .content_inline_size()
+ .to_used_value(containing_block_inline_size)
+ .map_or_else(
+ || {
+ if preferred_width_of_all_columns + table_border_padding <=
+ containing_block_inline_size
+ {
+ MaybeAuto::Specified(preferred_width_of_all_columns + table_border_padding)
+ } else if minimum_width_of_all_columns > containing_block_inline_size {
+ MaybeAuto::Specified(minimum_width_of_all_columns)
+ } else {
+ MaybeAuto::Auto
+ }
+ },
+ |used| {
+ MaybeAuto::Specified(max(
+ used - table_border_padding,
+ minimum_width_of_all_columns,
+ ))
+ },
+ )
}
struct Table {