From 6b6cdae7ce95681d6a1194be70b375494166a8c6 Mon Sep 17 00:00:00 2001 From: Martin Haug Date: Sun, 27 Jun 2021 12:28:40 +0200 Subject: Testing for incremental Also, constraint bugfixes. --- src/layout/pad.rs | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) (limited to 'src/layout/pad.rs') 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>> { + 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(); -- cgit v1.2.3 From 9bd8b7ddac046f581dc750e148147901d08cb0f4 Mon Sep 17 00:00:00 2001 From: Martin Haug Date: Sun, 27 Jun 2021 18:06:39 +0200 Subject: Code review, new stack test --- src/layout/pad.rs | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) (limited to 'src/layout/pad.rs') diff --git a/src/layout/pad.rs b/src/layout/pad.rs index cfde0719..f886bec8 100644 --- a/src/layout/pad.rs +++ b/src/layout/pad.rs @@ -15,7 +15,7 @@ impl Layout for PadNode { ctx: &mut LayoutContext, regions: &Regions, ) -> Vec>> { - let original = regions.clone(); + let mut original = regions.clone(); let mut regions = regions.map(|size| size - self.padding.resolve(size).size()); let mut frames = self.child.layout(ctx, ®ions); @@ -39,6 +39,7 @@ impl Layout for PadNode { } regions.next(); + original.next(); *Rc::make_mut(&mut frame.item) = new; } frames -- cgit v1.2.3 From e9960b89424ab67e633076ccc9f8c420316b076a Mon Sep 17 00:00:00 2001 From: Martin Haug Date: Sun, 27 Jun 2021 18:57:08 +0200 Subject: Code review: Reverse temperature --- src/layout/pad.rs | 17 +++++++++-------- 1 file changed, 9 insertions(+), 8 deletions(-) (limited to 'src/layout/pad.rs') diff --git a/src/layout/pad.rs b/src/layout/pad.rs index f886bec8..9461f3ff 100644 --- a/src/layout/pad.rs +++ b/src/layout/pad.rs @@ -15,10 +15,11 @@ impl Layout for PadNode { ctx: &mut LayoutContext, regions: &Regions, ) -> Vec>> { - let mut original = regions.clone(); - let mut regions = regions.map(|size| size - self.padding.resolve(size).size()); - - let mut frames = self.child.layout(ctx, ®ions); + let mut regions = regions.clone(); + let mut frames = self.child.layout( + ctx, + ®ions.map(|size| size - self.padding.resolve(size).size()), + ); for frame in &mut frames { let padded = solve(self.padding, frame.size); @@ -29,19 +30,19 @@ impl Layout for PadNode { let prev = std::mem::take(&mut frame.item); new.push_frame(origin, prev); - frame.constraints.mutate(padding.size(), &original); + frame.constraints.mutate(padding.size(), ®ions); if self.padding.left.is_relative() || self.padding.right.is_relative() { - frame.constraints.base.horizontal = Some(original.base.width); + frame.constraints.base.horizontal = Some(regions.base.width); } if self.padding.top.is_relative() || self.padding.bottom.is_relative() { - frame.constraints.base.vertical = Some(original.base.height); + frame.constraints.base.vertical = Some(regions.base.height); } regions.next(); - original.next(); *Rc::make_mut(&mut frame.item) = new; } + frames } } -- cgit v1.2.3