diff options
| author | Laurenz <laurmaedje@gmail.com> | 2021-08-17 00:17:28 +0200 |
|---|---|---|
| committer | Laurenz <laurmaedje@gmail.com> | 2021-08-17 00:17:28 +0200 |
| commit | 9a798ce6f6e734a02764473891632c071fed41ee (patch) | |
| tree | cb433d5b6309f55799749c19eec8579d86bf36b2 /src/layout/stack.rs | |
| parent | 9462fb17b390c57846b9215217ca7c32b649f0a5 (diff) | |
Make percentages for h and v relative to area instead of font size
Diffstat (limited to 'src/layout/stack.rs')
| -rw-r--r-- | src/layout/stack.rs | 10 |
1 files changed, 7 insertions, 3 deletions
diff --git a/src/layout/stack.rs b/src/layout/stack.rs index 7f0f2b9d..504c64aa 100644 --- a/src/layout/stack.rs +++ b/src/layout/stack.rs @@ -24,7 +24,7 @@ pub struct StackNode { #[cfg_attr(feature = "layout-cache", derive(Hash))] pub enum StackChild { /// Spacing between other nodes. - Spacing(Length), + Spacing(Linear), /// Any child node and how to align it in the stack. Any(LayoutNode, Gen<Align>), } @@ -125,11 +125,15 @@ impl<'a> StackLayouter<'a> { } /// Add main-axis spacing into the current region. - fn space(&mut self, amount: Length) { + fn space(&mut self, amount: Linear) { + // Resolve the linear. + let full = self.full.get(self.main); + let resolved = amount.resolve(full); + // Cap the spacing to the remaining available space. This action does // not directly affect the constraints because of the cap. let remaining = self.regions.current.get_mut(self.main); - let capped = amount.min(*remaining); + let capped = resolved.min(*remaining); // Grow our size and shrink the available space in the region. self.used.main += capped; |
