diff options
| author | Martin Haug <mhaug@live.de> | 2021-06-27 12:28:40 +0200 |
|---|---|---|
| committer | Martin Haug <mhaug@live.de> | 2021-06-27 12:31:27 +0200 |
| commit | 6b6cdae7ce95681d6a1194be70b375494166a8c6 (patch) | |
| tree | 2fe370798919ee0d1d411c6cacc5518a76094ecd /src/layout/pad.rs | |
| parent | f64c772b6d969fa3aa1a7391a3d8118b21430434 (diff) | |
Testing for incremental
Also, constraint bugfixes.
Diffstat (limited to 'src/layout/pad.rs')
| -rw-r--r-- | src/layout/pad.rs | 7 |
1 files changed, 4 insertions, 3 deletions
diff --git a/src/layout/pad.rs b/src/layout/pad.rs index 9d432e79..cfde0719 100644 --- a/src/layout/pad.rs +++ b/src/layout/pad.rs @@ -15,6 +15,7 @@ impl Layout for PadNode { ctx: &mut LayoutContext, regions: &Regions, ) -> Vec<Constrained<Rc<Frame>>> { + let original = regions.clone(); let mut regions = regions.map(|size| size - self.padding.resolve(size).size()); let mut frames = self.child.layout(ctx, ®ions); @@ -28,13 +29,13 @@ impl Layout for PadNode { let prev = std::mem::take(&mut frame.item); new.push_frame(origin, prev); - frame.constraints.mutate(padding.size() * -1.0); + frame.constraints.mutate(padding.size(), &original); if self.padding.left.is_relative() || self.padding.right.is_relative() { - frame.constraints.base.horizontal = Some(regions.base.width); + frame.constraints.base.horizontal = Some(original.base.width); } if self.padding.top.is_relative() || self.padding.bottom.is_relative() { - frame.constraints.base.vertical = Some(regions.base.height); + frame.constraints.base.vertical = Some(original.base.height); } regions.next(); |
