From a99786d9c4a660b9096a6cff5aaf02e7bc71820c Mon Sep 17 00:00:00 2001 From: Pieter-Jan Briers Date: Wed, 29 Sep 2021 17:22:03 +0200 Subject: [PATCH] Fix ICustomDrawOperation HitTest coordinate space. The transform should be applied inverse, not directly, so that the draw operation can operate on local space. --- .../Rendering/SceneGraph/CustomDrawOperation.cs | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/src/Avalonia.Visuals/Rendering/SceneGraph/CustomDrawOperation.cs b/src/Avalonia.Visuals/Rendering/SceneGraph/CustomDrawOperation.cs index 15e5660671..b7311936d3 100644 --- a/src/Avalonia.Visuals/Rendering/SceneGraph/CustomDrawOperation.cs +++ b/src/Avalonia.Visuals/Rendering/SceneGraph/CustomDrawOperation.cs @@ -17,7 +17,12 @@ namespace Avalonia.Rendering.SceneGraph public override bool HitTest(Point p) { - return Custom.HitTest(p * Transform); + if (Transform.HasInverse) + { + return Custom.HitTest(p * Transform.Invert()); + } + + return false; } public override void Render(IDrawingContextImpl context)