From 8245b7b73667dcdd32b32f49729d39083d513817 Mon Sep 17 00:00:00 2001 From: Laurenz Date: Tue, 30 Mar 2021 21:43:12 +0200 Subject: =?UTF-8?q?Baseline=20alignment=20=E2=8F=8F?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/layout/stack.rs | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) (limited to 'src/layout/stack.rs') 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; -- cgit v1.2.3