diff options
| author | Laurenz <laurmaedje@gmail.com> | 2021-03-30 21:43:12 +0200 |
|---|---|---|
| committer | Laurenz <laurmaedje@gmail.com> | 2021-03-30 21:43:12 +0200 |
| commit | 8245b7b73667dcdd32b32f49729d39083d513817 (patch) | |
| tree | 30f93625d4a3a5fc12434c86ed51dc32a03116a8 /src/layout/stack.rs | |
| parent | c00cca3677b9b2f010099b969452969d6b47cb3c (diff) | |
Baseline alignment ⏏
Diffstat (limited to 'src/layout/stack.rs')
| -rw-r--r-- | src/layout/stack.rs | 8 |
1 files changed, 7 insertions, 1 deletions
diff --git a/src/layout/stack.rs b/src/layout/stack.rs index 79fde72d..b9de1bbc 100644 --- a/src/layout/stack.rs +++ b/src/layout/stack.rs @@ -119,7 +119,8 @@ impl StackLayouter { size.switch(self.main) }; - let mut output = Frame::new(full_size.switch(self.main).to_size()); + let mut output = Frame::new(full_size.switch(self.main).to_size(), Length::ZERO); + let mut baseline = None; for (before, frame, aligns) in std::mem::take(&mut self.frames) { let child_size = frame.size.switch(self.main); @@ -142,9 +143,14 @@ impl StackLayouter { }); let pos = Gen::new(main, cross).switch(self.main).to_point(); + baseline.get_or_insert(pos.y + frame.baseline); output.push_frame(pos, frame); } + if let Some(baseline) = baseline { + output.baseline = baseline; + } + self.finished.push(output); self.areas.next(); self.ruler = Align::Start; |
