summaryrefslogtreecommitdiff
path: root/src/layout/tree.rs
diff options
context:
space:
mode:
authorLaurenz <laurmaedje@gmail.com>2019-10-17 12:55:34 +0200
committerLaurenz <laurmaedje@gmail.com>2019-10-17 12:55:34 +0200
commit1987e5861cf2c033e3a540a5ef7c0f7106016929 (patch)
treedcbf2d32c88d394e63b60e7473b2f6ba79fc83e3 /src/layout/tree.rs
parentf22f9513aea21408ebf6febd01912e630e9ad5e6 (diff)
Create basic box and line-break functions 📦
Diffstat (limited to 'src/layout/tree.rs')
-rw-r--r--src/layout/tree.rs11
1 files changed, 5 insertions, 6 deletions
diff --git a/src/layout/tree.rs b/src/layout/tree.rs
index bd4adb8a..2c904369 100644
--- a/src/layout/tree.rs
+++ b/src/layout/tree.rs
@@ -88,6 +88,7 @@ impl<'a, 'p> TreeLayouter<'a, 'p> {
fn layout_func(&mut self, func: &FuncCall) -> LayoutResult<()> {
// Finish the current flex layout on a copy to find out how
// much space would be remaining if we finished.
+
let mut lookahead_stack = self.stack.clone();
let layouts = self.flex.clone().finish()?;
lookahead_stack.add_many(layouts)?;
@@ -106,9 +107,7 @@ impl<'a, 'p> TreeLayouter<'a, 'p> {
for command in commands {
match command {
- Command::Layout(tree) => {
- self.layout(tree)?;
- }
+ Command::Layout(tree) => self.layout(tree)?,
Command::Add(layout) => {
self.finish_flex()?;
@@ -130,15 +129,15 @@ impl<'a, 'p> TreeLayouter<'a, 'p> {
self.start_new_flex();
}
- Command::SetStyle(style) => {
- *self.style.to_mut() = style;
- }
+ Command::SetStyle(style) => *self.style.to_mut() = style,
Command::FinishLayout => {
self.finish_flex()?;
self.stack.finish_layout(true)?;
self.start_new_flex();
}
+
+ Command::FinishFlexRun => self.flex.add_break(),
}
}