Browse Source

Propagate ClipBounds to child nodes.

When a scenegraph node's ClipBounds changes, ensure that that change is propagated to child nodes.

Fixes #1171
pull/1206/head
Steven Kirk 9 years ago
parent
commit
dc7740554e
  1. 7
      src/Avalonia.Visuals/Rendering/SceneGraph/SceneBuilder.cs

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

Loading…
Cancel
Save