mirror of
https://github.com/typst/typst
synced 2025-05-13 20:46:23 +08:00
Small fixes
This commit is contained in:
parent
5a59bb4821
commit
70c0dd7674
@ -77,7 +77,7 @@ impl Layout for ImageNode {
|
||||
let mut frame = Frame::new(canvas, canvas.h);
|
||||
frame.clips = self.fit == ImageFit::Cover;
|
||||
frame.push(
|
||||
Point::new((canvas.w - size.w) / 2.0, (canvas.h - size.h) / 2.0),
|
||||
(canvas - size).to_point() / 2.0,
|
||||
Element::Image(self.id, size),
|
||||
);
|
||||
|
||||
|
@ -106,7 +106,7 @@ impl PageNode {
|
||||
if let Some(fill) = self.fill {
|
||||
for frame in &mut frames {
|
||||
let element = Element::Geometry(Geometry::Rect(frame.size), fill);
|
||||
Rc::make_mut(frame).prepend(Point::zero(), element)
|
||||
Rc::make_mut(frame).prepend(Point::zero(), element);
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -644,6 +644,7 @@ impl<'a> LineStack<'a> {
|
||||
self.regions.next();
|
||||
self.full = self.regions.current;
|
||||
self.cts = Constraints::new(self.regions.expand);
|
||||
self.cts.base = self.regions.base.to_spec().map(Some);
|
||||
self.size = Size::zero();
|
||||
}
|
||||
|
||||
|
@ -437,8 +437,13 @@ fn draw_frame(
|
||||
let h = frame.size.h.to_pt() as f32;
|
||||
let rect = sk::Rect::from_xywh(0.0, 0.0, w, h).unwrap();
|
||||
let path = sk::PathBuilder::from_rect(rect).transform(ts).unwrap();
|
||||
let rule = sk::FillRule::default();
|
||||
storage = mask.clone();
|
||||
storage.intersect_path(&path, sk::FillRule::default(), false);
|
||||
if storage.intersect_path(&path, rule, false).is_none() {
|
||||
// Fails if clipping rect is empty. In that case we just clip everything
|
||||
// by returning.
|
||||
return;
|
||||
}
|
||||
&storage
|
||||
} else {
|
||||
mask
|
||||
|
Loading…
x
Reference in New Issue
Block a user