From b469f30c83f50a5728888c7a800d31321e160e5d Mon Sep 17 00:00:00 2001 From: Laurenz Date: Sun, 2 Apr 2023 19:45:53 +0200 Subject: [PATCH] Fix block spacing --- library/src/layout/mod.rs | 8 ++++++-- tests/ref/layout/block-spacing.png | Bin 0 -> 1868 bytes tests/typ/layout/block-spacing.typ | 9 +++++++++ 3 files changed, 15 insertions(+), 2 deletions(-) create mode 100644 tests/ref/layout/block-spacing.png create mode 100644 tests/typ/layout/block-spacing.typ diff --git a/library/src/layout/mod.rs b/library/src/layout/mod.rs index e93b2e028..d12ce158e 100644 --- a/library/src/layout/mod.rs +++ b/library/src/layout/mod.rs @@ -466,8 +466,12 @@ impl<'a> FlowBuilder<'a> { self.0.push(spacing.pack(), styles); } - let above = BlockElem::above_in(styles); - let below = BlockElem::below_in(styles); + let (above, below) = if let Some(block) = content.to::() { + (block.above(styles), block.below(styles)) + } else { + (BlockElem::above_in(styles), BlockElem::below_in(styles)) + }; + self.0.push(above.pack(), styles); self.0.push(content.clone(), styles); self.0.push(below.pack(), styles); diff --git a/tests/ref/layout/block-spacing.png b/tests/ref/layout/block-spacing.png new file mode 100644 index 0000000000000000000000000000000000000000..d73abac02f3721bb6e74cea5becfe3e7626ce9ee GIT binary patch literal 1868 zcmbW2={ppP0>)=7V~}Mm(I9Jy7;A~KuQ?`r7$G8rV+cv+V3?9+tkJ>PjVN0YbBrzf zF_=)uzRVagmQv>0Z}+)h&;4@W=l8tN`wzU&FUi*0f`<#r1pokeEN`0H0{}p_U%MFm zs{lIh|Fr@Da0ptO8aY0m*_w;8y-mL`@Xar+Dx%ivvruS~D;(1QXJw@m&x3kg^zEP# zHV27RONlvwUQ;`M>3+i4)wH$s(q0i>INP zS-q1#iiL=jo#MUGqoSyVJPMwPk6z3RGu4FR%*)68HSJEh>UbvX~n^q;CL)4r?jSoScRjtjqC9n6cwN8P=UKXS* z)0Yxe`A)l=b@5ByK#UF}pul|HS3M7LIXkh}cz##HHaG~C#=k&IY=F@gF-=hCm zQtx@C-R+Z0* zN8*BVpk}C;80mxxtoTham0`!xHqr5VOJCHqWm+85tKEIP&3*IJYr^fZbaEWMLcA*XvvqO?P}KwwaH%T~m8u~I znGErc{iF;?9v%pcvw}>C@%jK-_6ZB&0$7RFwMPeUB^aB&XvS=PTqoblEA?sZ(lKuK z{*)7I%*R-jpv=97)#{_&FdL#&9rCFH{;MO1OwtblVW%)X51$_`7UvP+zCK#;`|8|F z>`b{Z211r{f!~Ss!Mk*HkGzhejPCg%A6Y{!%6ipv_vJ`Dr}QmjsKt4IF)P-f5RQ-w1@XON7$kHdt2yhXJz;l=L>soJx-ZyGqwg7L~D87jdf`sDXx_{d2v_sXfuE#!J=&fHZXp(cSAV1*)BP+s%ysYKx*C_K$8b4JaEjY7 z4RWgN%b?HaLk`nH#D^;olTv#&DwKq0EiD6DMJasBb$K0ErWEwoG>hEqlSDUJmgsHm zfiDrr&wyrc=HQzLuS1nj$ojn4mDMTCkiFI0E$eCm@!61o73cokn-E&#VJ@zr1bjAn zk9K?mdCr@5klill)ks3@&zRLgF6a&SJm&G7?Y(7?=VayMtgUgY|GLwl_$G7I_8SNm z4fD`gpAzon&4AFypAAm303PZ=a8pMA+JpNVRA!(Pmm*Q48mxM{pXA4y{&=H=_wg@+Qk9% z+|)hZ(s8o%NHKfd+_68tzPX$G$rx7yYD-0zaC#~4iu^T%g9UzX)BvSn!lT-&yV@l6 z+T?2@sySGwa>MI)_+;J0JnvmvI@DPD7dlsQB-pPZqQl88C+{KU_KWB8xg|*^M zJhyWjb#TX70(SmaXoWbh;=ioEZQd+^Hm^i254zdf96qpCTKW0AAp62{v&%Hl?N`)~K{C$4a zMl_ZLWT<(#9%M!k)M~Mt6Fdf2*G5@e`jynfelH#NKXi_uakl(v(5e1W6y+5);ND_i ztjp4c?_e%Pwg(yBidU0LDCqb;TXsH)Uqnbipouc3-{FshVk|aOSf>)%wm6_HFDtT| zV462D#HEiB9MT5ir@3hG9T8|-^RgFiWyx7^x|ISFM_xmjtS0^ub`O(c2l!$ny{Q%Q x*xf&*X