diff options
| author | Laurenz <laurmaedje@gmail.com> | 2021-11-16 18:15:47 +0100 |
|---|---|---|
| committer | Laurenz <laurmaedje@gmail.com> | 2021-11-16 18:15:47 +0100 |
| commit | 0cdf17216f47312f634d2dea8db237118ede72ce (patch) | |
| tree | 1aa53f44f12da2f4473e72f166ecca380e72b4bb /src/library/grid.rs | |
| parent | 79638d4bbdc140a8dca0ccfdf70ffd607d5da251 (diff) | |
Abstraction for fr resolving
Diffstat (limited to 'src/library/grid.rs')
| -rw-r--r-- | src/library/grid.rs | 16 |
1 files changed, 4 insertions, 12 deletions
diff --git a/src/library/grid.rs b/src/library/grid.rs index 62c10e5a..c9accffb 100644 --- a/src/library/grid.rs +++ b/src/library/grid.rs @@ -314,10 +314,7 @@ impl<'a> GridLayouter<'a> { fn grow_fractional_columns(&mut self, remaining: Length, fr: Fractional) { for (&col, rcol) in self.cols.iter().zip(&mut self.rcols) { if let TrackSizing::Fractional(v) = col { - let ratio = v / fr; - if ratio.is_finite() { - *rcol = ratio * remaining; - } + *rcol = v.resolve(fr, remaining); } } } @@ -547,7 +544,7 @@ impl<'a> GridLayouter<'a> { // Determine the size of the grid in this region, expanding fully if // there are fr rows. let mut size = self.used; - if !self.fr.is_zero() && self.full.is_finite() { + if self.fr.get() > 0.0 && self.full.is_finite() { size.h = self.full; self.cts.exact.y = Some(self.full); } else { @@ -563,14 +560,9 @@ impl<'a> GridLayouter<'a> { let frame = match row { Row::Frame(frame) => frame, Row::Fr(v, y) => { - let ratio = v / self.fr; let remaining = self.full - self.used.h; - if remaining.is_finite() && ratio.is_finite() { - let resolved = ratio * remaining; - self.layout_single_row(ctx, resolved, y) - } else { - continue; - } + let height = v.resolve(self.fr, remaining); + self.layout_single_row(ctx, height, y) } }; |
