diff options
| author | Laurenz <laurmaedje@gmail.com> | 2021-10-05 23:23:09 +0200 |
|---|---|---|
| committer | Laurenz <laurmaedje@gmail.com> | 2021-10-05 23:23:09 +0200 |
| commit | 61fdc85b13824c2f80e62ff12fe654465d850181 (patch) | |
| tree | 2ff19286c3240360b81bb2fd7492f5d9a7819cf9 /src/layout/pad.rs | |
| parent | b69c0355ecda6a2da275cac42fcb0dfa9e31581b (diff) | |
Refactor a bit
Diffstat (limited to 'src/layout/pad.rs')
| -rw-r--r-- | src/layout/pad.rs | 13 |
1 files changed, 7 insertions, 6 deletions
diff --git a/src/layout/pad.rs b/src/layout/pad.rs index d1b575a9..dfe6dc47 100644 --- a/src/layout/pad.rs +++ b/src/layout/pad.rs @@ -16,6 +16,7 @@ impl Layout for PadNode { ctx: &mut LayoutContext, regions: &Regions, ) -> Vec<Constrained<Rc<Frame>>> { + // Layout child into padded regions. let mut frames = self.child.layout( ctx, ®ions.map(|size| size - self.padding.resolve(size).size()), @@ -38,6 +39,12 @@ impl Layout for PadNode { let padding = self.padding.resolve(padded); let origin = Point::new(padding.left, padding.top); + // Create a new larger frame and place the child's frame inside it. + let empty = Frame::new(padded, frame.baseline + origin.y); + let prev = std::mem::replace(frame, Rc::new(empty)); + let new = Rc::make_mut(frame); + new.push_frame(origin, prev); + // Inflate min and max contraints by the padding. for spec in [&mut constraints.min, &mut constraints.max] { if let Some(x) = spec.x.as_mut() { @@ -62,12 +69,6 @@ impl Layout for PadNode { if self.padding.top.is_relative() || self.padding.bottom.is_relative() { constraints.base.y = Some(base.h); } - - // Create a new larger frame and place the child's frame inside it. - let empty = Frame::new(padded, frame.baseline + origin.y); - let prev = std::mem::replace(frame, Rc::new(empty)); - let new = Rc::make_mut(frame); - new.push_frame(origin, prev); } frames |
