Browse Source

LibWeb: Honor the flexbox spec's "automatic minimum size" everywhere

`min-width: auto` and `min-height: auto` have special behavior on flex
items. We already handled it in many cases but there were two places
where it was incorrectly treated as 0. This fixes that.
Andreas Kling 3 years ago
parent
commit
c517dfde12
1 changed files with 2 additions and 2 deletions
  1. 2 2
      Userland/Libraries/LibWeb/Layout/FlexFormattingContext.cpp

+ 2 - 2
Userland/Libraries/LibWeb/Layout/FlexFormattingContext.cpp

@@ -1493,7 +1493,7 @@ float FlexFormattingContext::calculate_main_min_content_contribution(FlexItem co
         return outer_min_content_size;
         return outer_min_content_size;
     }
     }
 
 
-    auto clamp_min = has_main_min_size(item.box) ? specified_main_min_size(item.box) : 0;
+    auto clamp_min = has_main_min_size(item.box) ? specified_main_min_size(item.box) : automatic_minimum_size(item);
     auto clamp_max = has_main_max_size(item.box) ? specified_main_max_size(item.box) : NumericLimits<float>::max();
     auto clamp_max = has_main_max_size(item.box) ? specified_main_max_size(item.box) : NumericLimits<float>::max();
     auto unclamped_preferred_size = resolved_definite_main_size(item.box);
     auto unclamped_preferred_size = resolved_definite_main_size(item.box);
     auto clamped_preferred_size = css_clamp(unclamped_preferred_size, clamp_min, clamp_max);
     auto clamped_preferred_size = css_clamp(unclamped_preferred_size, clamp_min, clamp_max);
@@ -1517,7 +1517,7 @@ float FlexFormattingContext::calculate_main_max_content_contribution(FlexItem co
         return outer_max_content_size;
         return outer_max_content_size;
     }
     }
 
 
-    auto clamp_min = has_main_min_size(item.box) ? specified_main_min_size(item.box) : 0;
+    auto clamp_min = has_main_min_size(item.box) ? specified_main_min_size(item.box) : automatic_minimum_size(item);
     auto clamp_max = has_main_max_size(item.box) ? specified_main_max_size(item.box) : NumericLimits<float>::max();
     auto clamp_max = has_main_max_size(item.box) ? specified_main_max_size(item.box) : NumericLimits<float>::max();
     auto unclamped_preferred_size = resolved_definite_main_size(item.box);
     auto unclamped_preferred_size = resolved_definite_main_size(item.box);
     auto clamped_preferred_size = css_clamp(unclamped_preferred_size, clamp_min, clamp_max);
     auto clamped_preferred_size = css_clamp(unclamped_preferred_size, clamp_min, clamp_max);