summaryrefslogtreecommitdiff
path: root/src/layout/pad.rs
diff options
context:
space:
mode:
authorMartin Haug <mhaug@live.de>2021-06-27 12:28:40 +0200
committerMartin Haug <mhaug@live.de>2021-06-27 12:31:27 +0200
commit6b6cdae7ce95681d6a1194be70b375494166a8c6 (patch)
tree2fe370798919ee0d1d411c6cacc5518a76094ecd /src/layout/pad.rs
parentf64c772b6d969fa3aa1a7391a3d8118b21430434 (diff)
Testing for incremental
Also, constraint bugfixes.
Diffstat (limited to 'src/layout/pad.rs')
-rw-r--r--src/layout/pad.rs7
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, &regions);
@@ -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();