gioser

tawasuyu/taffy

A high performance rust-powered UI layout library

Rust 497HTML 254C 19JavaScript 81329 Definiciones

Grid: only stretch auto tracks if content-alignment is stretch

Signed-off-by: Nico Burns <nico@nicoburns.com>

2b8b0f0f6fd7b6c6d43b96b1770c2668989c20b0 · por Nico Burns · (hace 1 año) · padre 45760e063 · ver el árbol en este commit

Delta semántico · 2

src/compute/grid/mod.rs

src/compute/grid/track_sizing.rs

2 archivos · +8 −1

diff --git a/src/compute/grid/mod.rs b/src/compute/grid/mod.rs
index 33bc31942..6537a365d 100644
--- a/src/compute/grid/mod.rs
+++ b/src/compute/grid/mod.rs
@@ -241,6 +241,7 @@ pub fn compute_grid_layout(tree: &mut impl LayoutGridContainer, node: NodeId, in
         AbstractAxis::Inline,
         min_size.get(AbstractAxis::Inline),
         max_size.get(AbstractAxis::Inline),
+        justify_content,
         align_content,
         available_grid_space,
         inner_node_size,
@@ -261,6 +262,7 @@ pub fn compute_grid_layout(tree: &mut impl LayoutGridContainer, node: NodeId, in
         AbstractAxis::Block,
         min_size.get(AbstractAxis::Block),
         max_size.get(AbstractAxis::Block),
+        align_content,
         justify_content,
         available_grid_space,
         inner_node_size,
@@ -371,6 +373,7 @@ pub fn compute_grid_layout(tree: &mut impl LayoutGridContainer, node: NodeId, in
             AbstractAxis::Inline,
             min_size.get(AbstractAxis::Inline),
             max_size.get(AbstractAxis::Inline),
+            justify_content,
             align_content,
             available_grid_space,
             inner_node_size,
@@ -430,6 +433,7 @@ pub fn compute_grid_layout(tree: &mut impl LayoutGridContainer, node: NodeId, in
                 AbstractAxis::Block,
                 min_size.get(AbstractAxis::Block),
                 max_size.get(AbstractAxis::Block),
+                align_content,
                 justify_content,
                 available_grid_space,
                 inner_node_size,
diff --git a/src/compute/grid/track_sizing.rs b/src/compute/grid/track_sizing.rs
index 622f3a6f9..1e149ae3c 100644
--- a/src/compute/grid/track_sizing.rs
+++ b/src/compute/grid/track_sizing.rs
@@ -266,6 +266,7 @@ pub(super) fn track_sizing_algorithm<Tree: LayoutPartialTree>(
     axis: AbstractAxis,
     axis_min_size: Option<f32>,
     axis_max_size: Option<f32>,
+    axis_alignment: AlignContent,
     other_axis_alignment: AlignContent,
     available_grid_space: Size<AvailableSpace>,
     inner_node_size: Size<Option<f32>>,
@@ -352,7 +353,9 @@ pub(super) fn track_sizing_algorithm<Tree: LayoutPartialTree>(
 
     // 11.8. Stretch auto Tracks
     // This step expands tracks that have an auto max track sizing function by dividing any remaining positive, definite free space equally amongst them.
-    stretch_auto_tracks(axis_tracks, axis_min_size, axis_available_space_for_expansion);
+    if axis_alignment == AlignContent::Stretch {
+        stretch_auto_tracks(axis_tracks, axis_min_size, axis_available_space_for_expansion);
+    }
 }
 
 /// Whether it is a minimum or maximum size's space being distributed