tawasuyu

tawasuyu/taffy

A high performance rust-powered UI layout library

Rust 1117HTML 1044Markdown 12TOML 94797 Sutichaykuna

Grid: only stretch auto tracks if content-alignment is stretch (#783)

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

d19b5f51550708dc5f634c65f17a07d98179e37c · ruwaq Nico Burns · (1 wata ñawpaq) · tayta e353c1415 · kay commitpi sach'ata qhaway

Semántico sayk'uy · 2

src/compute/grid/mod.rs

src/compute/grid/track_sizing.rs

2 qillqakuna · +8 −1

diff --git a/src/compute/grid/mod.rs b/src/compute/grid/mod.rs
index a9c46d449..8d1cc9d32 100644
--- a/src/compute/grid/mod.rs
+++ b/src/compute/grid/mod.rs
@@ -247,6 +247,7 @@ pub fn compute_grid_layout<Tree: LayoutGridContainer>(
         AbstractAxis::Inline,
         min_size.get(AbstractAxis::Inline),
         max_size.get(AbstractAxis::Inline),
+        justify_content,
         align_content,
         available_grid_space,
         inner_node_size,
@@ -269,6 +270,7 @@ pub fn compute_grid_layout<Tree: LayoutGridContainer>(
         AbstractAxis::Block,
         min_size.get(AbstractAxis::Block),
         max_size.get(AbstractAxis::Block),
+        align_content,
         justify_content,
         available_grid_space,
         inner_node_size,
@@ -385,6 +387,7 @@ pub fn compute_grid_layout<Tree: LayoutGridContainer>(
             AbstractAxis::Inline,
             min_size.get(AbstractAxis::Inline),
             max_size.get(AbstractAxis::Inline),
+            justify_content,
             align_content,
             available_grid_space,
             inner_node_size,
@@ -444,6 +447,7 @@ pub fn compute_grid_layout<Tree: LayoutGridContainer>(
                 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 bf95772b7..a9c18b552 100644
--- a/src/compute/grid/track_sizing.rs
+++ b/src/compute/grid/track_sizing.rs
@@ -271,6 +271,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>>,
@@ -357,7 +358,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