Parcourir la 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 il y a 3 ans
Parent
commit
c517dfde12
1 fichiers modifiés avec 2 ajouts et 2 suppressions
  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;
     }
 
-    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 unclamped_preferred_size = resolved_definite_main_size(item.box);
     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;
     }
 
-    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 unclamped_preferred_size = resolved_definite_main_size(item.box);
     auto clamped_preferred_size = css_clamp(unclamped_preferred_size, clamp_min, clamp_max);