summaryrefslogtreecommitdiff
path: root/src/library/stack.rs
diff options
context:
space:
mode:
Diffstat (limited to 'src/library/stack.rs')
-rw-r--r--src/library/stack.rs14
1 files changed, 8 insertions, 6 deletions
diff --git a/src/library/stack.rs b/src/library/stack.rs
index 8a1f0fd5..dfe5e245 100644
--- a/src/library/stack.rs
+++ b/src/library/stack.rs
@@ -1,3 +1,5 @@
+//! Side-by-side layout of nodes along an axis.
+
use std::fmt::{self, Debug, Formatter};
use super::prelude::*;
@@ -215,17 +217,17 @@ impl<'a> StackLayouter<'a> {
}
let mut output = Frame::new(size);
- let mut before = Length::zero();
+ let mut cursor = Length::zero();
let mut ruler: Align = self.stack.dir.start().into();
// Place all frames.
for item in self.items.drain(..) {
match item {
StackItem::Absolute(v) => {
- before += v;
+ cursor += v;
}
StackItem::Fractional(v) => {
- before += v.resolve(self.fr, remaining);
+ cursor += v.resolve(self.fr, remaining);
}
StackItem::Frame(frame, align) => {
if self.stack.dir.is_positive() {
@@ -239,13 +241,13 @@ impl<'a> StackLayouter<'a> {
let child = frame.size.get(self.axis);
let block = ruler.resolve(parent - self.used.main)
+ if self.stack.dir.is_positive() {
- before
+ cursor
} else {
- self.used.main - child - before
+ self.used.main - child - cursor
};
let pos = Gen::new(Length::zero(), block).to_point(self.axis);
- before += child;
+ cursor += child;
output.push_frame(pos, frame);
}
}