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/track_sizing.rs
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