From 6b6cdae7ce95681d6a1194be70b375494166a8c6 Mon Sep 17 00:00:00 2001 From: Martin Haug Date: Sun, 27 Jun 2021 12:28:40 +0200 Subject: Testing for incremental Also, constraint bugfixes. --- src/layout/grid.rs | 10 +++++++--- 1 file changed, 7 insertions(+), 3 deletions(-) (limited to 'src/layout/grid.rs') diff --git a/src/layout/grid.rs b/src/layout/grid.rs index d2976502..996ce7c2 100644 --- a/src/layout/grid.rs +++ b/src/layout/grid.rs @@ -64,6 +64,8 @@ struct GridLayouter<'a> { children: &'a [AnyNode], /// The region to layout into. regions: Regions, + /// The original expand state of the target region. + original_expand: Spec, /// Resolved column sizes. rcols: Vec, /// The full main size of the current region. @@ -135,7 +137,8 @@ impl<'a> GridLayouter<'a> { let full = regions.current.get(main); let rcols = vec![Length::zero(); cols.len()]; - // We use the regions only for auto row measurement. + // We use the regions only for auto row measurement and constraints. + let original_expand = regions.expand; regions.expand = Gen::new(true, false).to_spec(main); Self { @@ -144,8 +147,9 @@ impl<'a> GridLayouter<'a> { cols, rows, children: &grid.children, - constraints: Constraints::new(regions.expand), + constraints: Constraints::new(original_expand), regions, + original_expand, rcols, lrows: vec![], full, @@ -506,7 +510,7 @@ impl<'a> GridLayouter<'a> { self.used.main = Length::zero(); self.fr = Fractional::zero(); self.finished.push(output.constrain(self.constraints)); - self.constraints = Constraints::new(self.regions.expand); + self.constraints = Constraints::new(self.original_expand); } /// Get the node in the cell in column `x` and row `y`. -- cgit v1.2.3 From 9bd8b7ddac046f581dc750e148147901d08cb0f4 Mon Sep 17 00:00:00 2001 From: Martin Haug Date: Sun, 27 Jun 2021 18:06:39 +0200 Subject: Code review, new stack test --- src/layout/grid.rs | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) (limited to 'src/layout/grid.rs') diff --git a/src/layout/grid.rs b/src/layout/grid.rs index 996ce7c2..33fce064 100644 --- a/src/layout/grid.rs +++ b/src/layout/grid.rs @@ -56,6 +56,8 @@ struct GridLayouter<'a> { cross: SpecAxis, /// The axis of the main direction. main: SpecAxis, + /// The original expand state of the target region. + expand: Spec, /// The column tracks including gutter tracks. cols: Vec, /// The row tracks including gutter tracks. @@ -64,8 +66,6 @@ struct GridLayouter<'a> { children: &'a [AnyNode], /// The region to layout into. regions: Regions, - /// The original expand state of the target region. - original_expand: Spec, /// Resolved column sizes. rcols: Vec, /// The full main size of the current region. @@ -138,7 +138,7 @@ impl<'a> GridLayouter<'a> { let rcols = vec![Length::zero(); cols.len()]; // We use the regions only for auto row measurement and constraints. - let original_expand = regions.expand; + let expand = regions.expand; regions.expand = Gen::new(true, false).to_spec(main); Self { @@ -147,9 +147,9 @@ impl<'a> GridLayouter<'a> { cols, rows, children: &grid.children, - constraints: Constraints::new(original_expand), + constraints: Constraints::new(expand), regions, - original_expand, + expand, rcols, lrows: vec![], full, @@ -510,7 +510,7 @@ impl<'a> GridLayouter<'a> { self.used.main = Length::zero(); self.fr = Fractional::zero(); self.finished.push(output.constrain(self.constraints)); - self.constraints = Constraints::new(self.original_expand); + self.constraints = Constraints::new(self.expand); } /// Get the node in the cell in column `x` and row `y`. -- cgit v1.2.3