summaryrefslogtreecommitdiffstats
path: root/tiny_skia/src/layer.rs
diff options
context:
space:
mode:
Diffstat (limited to 'tiny_skia/src/layer.rs')
-rw-r--r--tiny_skia/src/layer.rs18
1 files changed, 8 insertions, 10 deletions
diff --git a/tiny_skia/src/layer.rs b/tiny_skia/src/layer.rs
index d3d8b988..ec87c2bf 100644
--- a/tiny_skia/src/layer.rs
+++ b/tiny_skia/src/layer.rs
@@ -213,16 +213,14 @@ impl Layer {
&current.primitives,
|item| match item {
Item::Live(primitive) => vec![primitive.visible_bounds()],
- Item::Group(primitives, bounds, transformation) => {
- damage::group(
- primitives
- .as_slice()
- .iter()
- .map(Primitive::visible_bounds)
- .map(|bounds| bounds * *transformation)
- .collect(),
- *bounds,
- )
+ Item::Group(primitives, group_bounds, transformation) => {
+ primitives
+ .as_slice()
+ .iter()
+ .map(Primitive::visible_bounds)
+ .map(|bounds| bounds * *transformation)
+ .filter_map(|bounds| bounds.intersection(group_bounds))
+ .collect()
}
Item::Cached(_, bounds, _) => {
vec![*bounds]