diff options
| author | Martin <mhaug@live.de> | 2021-06-27 17:08:40 +0200 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2021-06-27 17:08:40 +0200 |
| commit | 57bd3e23c79878d106ab8be17c71caca6c4f5a7c (patch) | |
| tree | 0eb5fd53d66299de17ac49a608e5aa44b6411aaf /src | |
| parent | 6b6cdae7ce95681d6a1194be70b375494166a8c6 (diff) | |
Apply suggestions from code review
Co-authored-by: Laurenz <laurmaedje@gmail.com>
Diffstat (limited to 'src')
| -rw-r--r-- | src/geom/length.rs | 2 | ||||
| -rw-r--r-- | src/layout/incremental.rs | 2 | ||||
| -rw-r--r-- | src/layout/par.rs | 16 |
3 files changed, 13 insertions, 7 deletions
diff --git a/src/geom/length.rs b/src/geom/length.rs index 08bf3111..951cef4f 100644 --- a/src/geom/length.rs +++ b/src/geom/length.rs @@ -108,7 +108,7 @@ impl Length { self.raw + 1e-6 >= other.raw } - /// Compares to lengths for whether they are approximately equal. + /// Compares two lengths for whether they are approximately equal. pub fn approx_eq(self, other: Self) -> bool { self == other || (self - other).to_raw().abs() < 1e-6 } diff --git a/src/layout/incremental.rs b/src/layout/incremental.rs index e1d1ffba..953b76be 100644 --- a/src/layout/incremental.rs +++ b/src/layout/incremental.rs @@ -101,7 +101,7 @@ pub struct FramesEntry { /// How nested the frame was in the context is was originally appearing in. pub level: usize, /// How much the element was accessed during the last five compilations, the - /// most current one being the last element. `None` variants indicate that + /// most recent one being the last element. `None` variants indicate that /// the element is younger than five compilations. temperature: [Option<usize>; 5], } diff --git a/src/layout/par.rs b/src/layout/par.rs index 0cf1cd23..40cb84f2 100644 --- a/src/layout/par.rs +++ b/src/layout/par.rs @@ -219,12 +219,18 @@ impl<'a> ParLayouter<'a> { stack.finish_region(ctx); } - if !stack.regions.current.height.fits(line.size.height) - && stack.regions.in_full_last() - { - stack.overflowing = true; + // If the line does not fit vertically, we start a new region. + while !stack.regions.current.height.fits(line.size.height) { + if stack.regions.in_full_last() { + stack.overflowing = true; + break; + } + + stack.constraints.max.vertical.set_min( + stack.full.height - stack.regions.current.height + line.size.height, + ); + stack.finish_region(ctx); } - // If the line does not fit horizontally or we have a mandatory // line break (i.e. due to "\n"), we push the line into the // stack. |
