diff options
| author | Sébastien d'Herbais de Thun <sebastien.d.herbais@gmail.com> | 2023-10-03 19:31:02 +0200 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2023-10-03 19:31:02 +0200 |
| commit | a4e357fb37d76d32d06ad8cc21e47bb2cc064cfd (patch) | |
| tree | 52e118513218d961cc5e8c713575049cd75a2e95 /crates/typst-library/src/layout | |
| parent | 6b1233e127d815b38fea9ab909dd4081cdf76ca2 (diff) | |
Gradient Part 2 - Linear gradients (#2279)
Diffstat (limited to 'crates/typst-library/src/layout')
| -rw-r--r-- | crates/typst-library/src/layout/columns.rs | 2 | ||||
| -rw-r--r-- | crates/typst-library/src/layout/container.rs | 2 | ||||
| -rw-r--r-- | crates/typst-library/src/layout/flow.rs | 4 | ||||
| -rw-r--r-- | crates/typst-library/src/layout/grid.rs | 6 | ||||
| -rw-r--r-- | crates/typst-library/src/layout/page.rs | 2 | ||||
| -rw-r--r-- | crates/typst-library/src/layout/par.rs | 4 | ||||
| -rw-r--r-- | crates/typst-library/src/layout/repeat.rs | 2 | ||||
| -rw-r--r-- | crates/typst-library/src/layout/stack.rs | 2 |
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(); |
