From 73f44bb7b45ae6c3b5cb894d849367a44a421537 Mon Sep 17 00:00:00 2001 From: Steven Kirk Date: Thu, 10 Nov 2016 01:52:40 +0100 Subject: [PATCH] Fix GeometryNode hit test. And add to-do for RectangleNode geometry hit-test. --- src/Avalonia.Visuals/Rendering/SceneGraph/GeometryNode.cs | 3 ++- src/Avalonia.Visuals/Rendering/SceneGraph/RectangleNode.cs | 1 + 2 files changed, 3 insertions(+), 1 deletion(-) diff --git a/src/Avalonia.Visuals/Rendering/SceneGraph/GeometryNode.cs b/src/Avalonia.Visuals/Rendering/SceneGraph/GeometryNode.cs index ce7e6f9b1d..dedb1736e2 100644 --- a/src/Avalonia.Visuals/Rendering/SceneGraph/GeometryNode.cs +++ b/src/Avalonia.Visuals/Rendering/SceneGraph/GeometryNode.cs @@ -39,7 +39,8 @@ namespace Avalonia.Rendering.SceneGraph public bool HitTest(Point p) { p *= Transform.Invert(); - return Geometry.FillContains(p) || Geometry.StrokeContains(Pen, p); + return (Brush != null && Geometry.FillContains(p)) || + (Pen != null && Geometry.StrokeContains(Pen, p)); } } } diff --git a/src/Avalonia.Visuals/Rendering/SceneGraph/RectangleNode.cs b/src/Avalonia.Visuals/Rendering/SceneGraph/RectangleNode.cs index 4e8da4d461..6c37c30f9c 100644 --- a/src/Avalonia.Visuals/Rendering/SceneGraph/RectangleNode.cs +++ b/src/Avalonia.Visuals/Rendering/SceneGraph/RectangleNode.cs @@ -49,6 +49,7 @@ namespace Avalonia.Rendering.SceneGraph public bool HitTest(Point p) { + // TODO: Only test interior when Brush != null. return (Rect * Transform).Contains(p); } }