summaryrefslogtreecommitdiff
path: root/library/src/layout
diff options
context:
space:
mode:
Diffstat (limited to 'library/src/layout')
-rw-r--r--library/src/layout/mod.rs17
1 files changed, 11 insertions, 6 deletions
diff --git a/library/src/layout/mod.rs b/library/src/layout/mod.rs
index b05da901..fdf02c93 100644
--- a/library/src/layout/mod.rs
+++ b/library/src/layout/mod.rs
@@ -49,20 +49,25 @@ use crate::text::{
#[capability]
pub trait LayoutRoot {
/// Layout into one frame per page.
- fn layout_root(&self, world: Tracked<dyn World>) -> SourceResult<Vec<Frame>>;
+ fn layout_root(
+ &self,
+ world: Tracked<dyn World>,
+ styles: StyleChain,
+ ) -> SourceResult<Vec<Frame>>;
}
impl LayoutRoot for Content {
#[comemo::memoize]
- fn layout_root(&self, world: Tracked<dyn World>) -> SourceResult<Vec<Frame>> {
- let styles = StyleChain::with_root(&world.config().styles);
+ fn layout_root(
+ &self,
+ world: Tracked<dyn World>,
+ styles: StyleChain,
+ ) -> SourceResult<Vec<Frame>> {
let scratch = Scratch::default();
-
let mut builder = Builder::new(world, &scratch, true);
builder.accept(self, styles)?;
-
let (doc, shared) = builder.into_doc(styles)?;
- doc.layout(world, shared)
+ doc.layout_root(world, shared)
}
}