diff options
| author | Laurenz <laurmaedje@gmail.com> | 2019-10-17 12:55:34 +0200 |
|---|---|---|
| committer | Laurenz <laurmaedje@gmail.com> | 2019-10-17 12:55:34 +0200 |
| commit | 1987e5861cf2c033e3a540a5ef7c0f7106016929 (patch) | |
| tree | dcbf2d32c88d394e63b60e7473b2f6ba79fc83e3 /src/layout/tree.rs | |
| parent | f22f9513aea21408ebf6febd01912e630e9ad5e6 (diff) | |
Create basic box and line-break functions 📦
Diffstat (limited to 'src/layout/tree.rs')
| -rw-r--r-- | src/layout/tree.rs | 11 |
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(), } } |
