summaryrefslogtreecommitdiff
path: root/crates/typst-library/src/layout
diff options
context:
space:
mode:
Diffstat (limited to 'crates/typst-library/src/layout')
-rw-r--r--crates/typst-library/src/layout/columns.rs2
-rw-r--r--crates/typst-library/src/layout/container.rs2
-rw-r--r--crates/typst-library/src/layout/flow.rs4
-rw-r--r--crates/typst-library/src/layout/grid.rs6
-rw-r--r--crates/typst-library/src/layout/page.rs2
-rw-r--r--crates/typst-library/src/layout/par.rs4
-rw-r--r--crates/typst-library/src/layout/repeat.rs2
-rw-r--r--crates/typst-library/src/layout/stack.rs2
8 files changed, 13 insertions, 11 deletions
diff --git a/crates/typst-library/src/layout/columns.rs b/crates/typst-library/src/layout/columns.rs
index 961bedc5..bf111506 100644
--- a/crates/typst-library/src/layout/columns.rs
+++ b/crates/typst-library/src/layout/columns.rs
@@ -100,7 +100,7 @@ impl Layout for ColumnsElem {
// case, the frame is first created with zero height and then
// resized.
let height = if regions.expand.y { region.y } else { Abs::zero() };
- let mut output = Frame::new(Size::new(regions.size.x, height));
+ let mut output = Frame::hard(Size::new(regions.size.x, height));
let mut cursor = Abs::zero();
for _ in 0..columns {
diff --git a/crates/typst-library/src/layout/container.rs b/crates/typst-library/src/layout/container.rs
index e966398f..28a56103 100644
--- a/crates/typst-library/src/layout/container.rs
+++ b/crates/typst-library/src/layout/container.rs
@@ -164,6 +164,7 @@ impl Layout for BoxElem {
// Apply metadata.
frame.meta(styles, false);
+ frame.set_kind(FrameKind::Hard);
Ok(Fragment::frame(frame))
}
@@ -440,6 +441,7 @@ impl Layout for BlockElem {
// Apply metadata.
for frame in &mut frames {
+ frame.set_kind(FrameKind::Hard);
frame.meta(styles, false);
}
diff --git a/crates/typst-library/src/layout/flow.rs b/crates/typst-library/src/layout/flow.rs
index 796b1ac8..432ab5e8 100644
--- a/crates/typst-library/src/layout/flow.rs
+++ b/crates/typst-library/src/layout/flow.rs
@@ -55,7 +55,7 @@ impl Layout for FlowElem {
let layoutable = child.with::<dyn Layout>().unwrap();
layouter.layout_single(vt, layoutable, styles)?;
} else if child.is::<MetaElem>() {
- let mut frame = Frame::new(Size::zero());
+ let mut frame = Frame::soft(Size::zero());
frame.meta(styles, true);
layouter.items.push(FlowItem::Frame {
frame,
@@ -484,7 +484,7 @@ impl<'a> FlowLayouter<'a> {
size.y = self.initial.y;
}
- let mut output = Frame::new(size);
+ let mut output = Frame::soft(size);
let mut ruler = FixedAlign::Start;
let mut float_top_offset = Abs::zero();
let mut offset = float_top_height;
diff --git a/crates/typst-library/src/layout/grid.rs b/crates/typst-library/src/layout/grid.rs
index 06962524..134bdc7c 100644
--- a/crates/typst-library/src/layout/grid.rs
+++ b/crates/typst-library/src/layout/grid.rs
@@ -563,7 +563,7 @@ impl<'a> GridLayouter<'a> {
height: Abs,
y: usize,
) -> SourceResult<Frame> {
- let mut output = Frame::new(Size::new(self.width, height));
+ let mut output = Frame::soft(Size::new(self.width, height));
let mut pos = Point::zero();
for (x, &rcol) in self.rcols.iter().enumerate() {
@@ -593,7 +593,7 @@ impl<'a> GridLayouter<'a> {
// Prepare frames.
let mut outputs: Vec<_> = heights
.iter()
- .map(|&h| Frame::new(Size::new(self.width, h)))
+ .map(|&h| Frame::soft(Size::new(self.width, h)))
.collect();
// Prepare regions.
@@ -647,7 +647,7 @@ impl<'a> GridLayouter<'a> {
}
// The frame for the region.
- let mut output = Frame::new(size);
+ let mut output = Frame::soft(size);
let mut pos = Point::zero();
let mut rrows = vec![];
diff --git a/crates/typst-library/src/layout/page.rs b/crates/typst-library/src/layout/page.rs
index 9ec69f58..b2efed19 100644
--- a/crates/typst-library/src/layout/page.rs
+++ b/crates/typst-library/src/layout/page.rs
@@ -381,7 +381,7 @@ impl PageElem {
if extend_to.is_some_and(|p| p.matches(page_counter.physical().get())) {
// Insert empty page after the current pages.
let size = area.map(Abs::is_finite).select(area, Size::zero());
- frames.push(Frame::new(size));
+ frames.push(Frame::hard(size));
}
let fill = self.fill(styles);
diff --git a/crates/typst-library/src/layout/par.rs b/crates/typst-library/src/layout/par.rs
index e41d3547..f126df76 100644
--- a/crates/typst-library/src/layout/par.rs
+++ b/crates/typst-library/src/layout/par.rs
@@ -714,7 +714,7 @@ fn prepare<'a>(
}
}
Segment::Meta => {
- let mut frame = Frame::new(Size::zero());
+ let mut frame = Frame::soft(Size::zero());
frame.meta(styles, true);
items.push(Item::Meta(frame));
}
@@ -1521,7 +1521,7 @@ fn commit(
}
let size = Size::new(width, top + bottom);
- let mut output = Frame::new(size);
+ let mut output = Frame::soft(size);
output.set_baseline(top);
// Construct the line's frame.
diff --git a/crates/typst-library/src/layout/repeat.rs b/crates/typst-library/src/layout/repeat.rs
index 41dede51..6b30dd50 100644
--- a/crates/typst-library/src/layout/repeat.rs
+++ b/crates/typst-library/src/layout/repeat.rs
@@ -54,7 +54,7 @@ impl Layout for RepeatElem {
bail!(self.span(), "repeat with no size restrictions");
}
- let mut frame = Frame::new(size);
+ let mut frame = Frame::soft(size);
if piece.has_baseline() {
frame.set_baseline(piece.baseline());
}
diff --git a/crates/typst-library/src/layout/stack.rs b/crates/typst-library/src/layout/stack.rs
index d3fcba8d..398341b2 100644
--- a/crates/typst-library/src/layout/stack.rs
+++ b/crates/typst-library/src/layout/stack.rs
@@ -254,7 +254,7 @@ impl<'a> StackLayouter<'a> {
size.set(self.axis, full);
}
- let mut output = Frame::new(size);
+ let mut output = Frame::hard(size);
let mut cursor = Abs::zero();
let mut ruler: FixedAlign = self.dir.start().into();