summaryrefslogtreecommitdiff
path: root/library/src/math/underover.rs
diff options
context:
space:
mode:
Diffstat (limited to 'library/src/math/underover.rs')
-rw-r--r--library/src/math/underover.rs16
1 files changed, 6 insertions, 10 deletions
diff --git a/library/src/math/underover.rs b/library/src/math/underover.rs
index 5282c6dc..89ec5cff 100644
--- a/library/src/math/underover.rs
+++ b/library/src/math/underover.rs
@@ -242,22 +242,18 @@ pub(super) fn stack(
gap: Abs,
baseline: usize,
) -> Frame {
- let mut width = Abs::zero();
- let mut height = rows.len().saturating_sub(1) as f64 * gap;
-
- let points = alignments(&rows);
+ let AlignmentResult { points, width } = alignments(&rows);
let rows: Vec<_> = rows
.into_iter()
.map(|row| row.into_aligned_frame(ctx, &points, align))
.collect();
- for row in &rows {
- height += row.height();
- width.set_max(row.width());
- }
-
let mut y = Abs::zero();
- let mut frame = Frame::new(Size::new(width, height));
+ let mut frame = Frame::new(Size::new(
+ width,
+ rows.iter().map(|row| row.height()).sum::<Abs>()
+ + rows.len().saturating_sub(1) as f64 * gap,
+ ));
for (i, row) in rows.into_iter().enumerate() {
let x = align.position(width - row.width());