Small fixes

This commit is contained in:
Laurenz 2021-11-19 13:16:43 +01:00
parent 5a59bb4821
commit 70c0dd7674
4 changed files with 9 additions and 3 deletions

View File

@ -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),
);

View File

@ -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);
}
}

View File

@ -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();
}

View File

@ -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