diff options
Diffstat (limited to '')
-rw-r--r-- | graphics/src/primitive.rs | 12 |
1 files changed, 10 insertions, 2 deletions
diff --git a/graphics/src/primitive.rs b/graphics/src/primitive.rs index bbf300b0..f079ff6f 100644 --- a/graphics/src/primitive.rs +++ b/graphics/src/primitive.rs @@ -230,7 +230,11 @@ impl Primitive { }, ) => { if bounds_a == bounds_b { - return content_a.damage(content_b); + return content_a + .damage(content_b) + .into_iter() + .filter_map(|r| r.intersection(bounds_a)) + .collect(); } else { return vec![*bounds_a, *bounds_b]; } @@ -246,7 +250,11 @@ impl Primitive { }, ) => { if translation_a == translation_b { - return content_a.damage(content_b); + return content_a + .damage(content_b) + .into_iter() + .map(|r| r + *translation_a) + .collect(); } } ( |