From dc7740554ecda45c444ffd8807e30108d941f94e Mon Sep 17 00:00:00 2001 From: Steven Kirk Date: Thu, 12 Oct 2017 14:24:41 +0200 Subject: [PATCH] Propagate ClipBounds to child nodes. When a scenegraph node's ClipBounds changes, ensure that that change is propagated to child nodes. Fixes #1171 --- src/Avalonia.Visuals/Rendering/SceneGraph/SceneBuilder.cs | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/src/Avalonia.Visuals/Rendering/SceneGraph/SceneBuilder.cs b/src/Avalonia.Visuals/Rendering/SceneGraph/SceneBuilder.cs index 10455eb147..90ef78de37 100644 --- a/src/Avalonia.Visuals/Rendering/SceneGraph/SceneBuilder.cs +++ b/src/Avalonia.Visuals/Rendering/SceneGraph/SceneBuilder.cs @@ -168,11 +168,14 @@ namespace Avalonia.Rendering.SceneGraph using (context.PushTransformContainer()) { var startLayer = opacity < 1 || visual.OpacityMask != null; + var clipBounds = bounds.TransformToAABB(contextImpl.Transform).Intersect(clip); - forceRecurse = forceRecurse || node.Transform != contextImpl.Transform; + forceRecurse = forceRecurse || + node.Transform != contextImpl.Transform || + node.ClipBounds != clipBounds; node.Transform = contextImpl.Transform; - node.ClipBounds = bounds.TransformToAABB(node.Transform).Intersect(clip); + node.ClipBounds = clipBounds; node.ClipToBounds = clipToBounds; node.GeometryClip = visual.Clip?.PlatformImpl; node.Opacity = opacity;