From 01d040bf6ca6043fb42fcc6cecb04ea176df3819 Mon Sep 17 00:00:00 2001 From: Evgeny Gorbovoy Date: Wed, 27 Jul 2022 23:25:43 +0200 Subject: [PATCH] + hit test attempt --- .../DeferredRendererTests_HitTesting.cs | 31 +++++++++++++++++++ 1 file changed, 31 insertions(+) diff --git a/tests/Avalonia.Base.UnitTests/Rendering/DeferredRendererTests_HitTesting.cs b/tests/Avalonia.Base.UnitTests/Rendering/DeferredRendererTests_HitTesting.cs index 33c7b3e0f8..e1b36c9d72 100644 --- a/tests/Avalonia.Base.UnitTests/Rendering/DeferredRendererTests_HitTesting.cs +++ b/tests/Avalonia.Base.UnitTests/Rendering/DeferredRendererTests_HitTesting.cs @@ -537,6 +537,37 @@ namespace Avalonia.Base.UnitTests.Rendering } } + [Fact] + public void HitTest_Should_Not_Hit_Controls_Next_Pixel() + { + using (TestApplication()) + { + Button targetButton; + + var root = new TestRoot + { + Width = 300, + Height = 200, + Child = new StackPanel + { + Orientation = Orientation.Vertical, + Children = + { + new Button { Width = 10, Height = 10 }, + { targetButton = new Button { Width = 10, Height = 10 } } + } + } + }; + + root.Renderer = new DeferredRenderer(root, null); + root.Measure(Size.Infinity); + root.Arrange(new Rect(root.DesiredSize)); + + var result = root.Renderer.HitTest(new Point(5, 10), root, null); + Assert.Equal(new[] { targetButton }, result); + } + } + private IDisposable TestApplication() { return UnitTestApplication.Start(TestServices.MockPlatformRenderInterface);