summaryrefslogtreecommitdiff
path: root/src/layout/pad.rs
diff options
context:
space:
mode:
authorLaurenz <laurmaedje@gmail.com>2021-10-05 23:23:09 +0200
committerLaurenz <laurmaedje@gmail.com>2021-10-05 23:23:09 +0200
commit61fdc85b13824c2f80e62ff12fe654465d850181 (patch)
tree2ff19286c3240360b81bb2fd7492f5d9a7819cf9 /src/layout/pad.rs
parentb69c0355ecda6a2da275cac42fcb0dfa9e31581b (diff)
Refactor a bit
Diffstat (limited to 'src/layout/pad.rs')
-rw-r--r--src/layout/pad.rs13
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,
&regions.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