Fix pagebreak before place

Fixes #1368
This commit is contained in:
Laurenz 2023-05-30 14:36:34 +02:00
parent 87ee97ae5e
commit f90fcd664b
3 changed files with 10 additions and 5 deletions

View File

@ -243,11 +243,6 @@ impl<'a> FlowLayouter<'a> {
block: &Content,
styles: StyleChain,
) -> SourceResult<()> {
// Skip directly if region is already full.
if self.regions.is_full() {
self.finish_region()?;
}
// Placed elements that are out of flow produce placed items which
// aren't aligned later.
if let Some(placed) = block.to::<PlaceElem>() {
@ -256,6 +251,9 @@ impl<'a> FlowLayouter<'a> {
self.layout_item(vt, FlowItem::Placed(frame))?;
return Ok(());
}
} else if self.regions.is_full() {
// Skip directly if region is already full.
self.finish_region()?;
}
// How to align the block.

Binary file not shown.

After

Width:  |  Height:  |  Size: 978 B

View File

@ -0,0 +1,7 @@
// Test placing on an already full page.
// It shouldn't result in a page break.
---
#set page(height: 40pt)
#block(height: 100%)
#place(bottom + right)[Hello world]