summaryrefslogtreecommitdiff
path: root/src/layout/line.rs
diff options
context:
space:
mode:
authorLaurenz <laurmaedje@gmail.com>2020-10-06 14:44:58 +0200
committerLaurenz <laurmaedje@gmail.com>2020-10-06 14:44:58 +0200
commit985fe281665fb8dfac6d8ffaf8d09afb6eb1ef3e (patch)
treea33f60263bb04af9fca8d28bb3c74287347739f8 /src/layout/line.rs
parentef410f68771919cf7648d6ea3273336ba1988d1d (diff)
Fix bug in line layouter ✔
Diffstat (limited to 'src/layout/line.rs')
-rw-r--r--src/layout/line.rs14
1 files changed, 6 insertions, 8 deletions
diff --git a/src/layout/line.rs b/src/layout/line.rs
index acf143c0..c1b5920f 100644
--- a/src/layout/line.rs
+++ b/src/layout/line.rs
@@ -198,19 +198,17 @@ impl LineLayouter {
pub fn finish_line(&mut self) {
let mut layout = BoxLayout::new(self.run.size.specialized(self.ctx.dirs));
let aligns = self.run.aligns.unwrap_or_default();
+ let cross = self.ctx.dirs.cross;
let layouts = std::mem::take(&mut self.run.layouts);
for (offset, child) in layouts {
- let x = match self.ctx.dirs.cross.is_positive() {
- true => offset,
- false => {
- self.run.size.width
- - offset
- - child.size.get(self.ctx.dirs.cross.axis())
- }
+ let mut pos = Point::ZERO;
+ *pos.get_mut(cross.axis()) = if cross.is_positive() {
+ offset
+ } else {
+ self.run.size.width - offset - child.size.get(cross.axis())
};
- let pos = Point::new(x, 0.0);
layout.push_layout(pos, child);
}