Browse Source

Added custom hit-testing for ImmediateRenderer to OverlayLayer

Nikita Tsukanov 6 years ago
parent
commit
81ac23066e
1 changed files with 7 additions and 1 deletions
  1. 7 1
      src/Avalonia.Controls/Primitives/OverlayLayer.cs

+ 7 - 1
src/Avalonia.Controls/Primitives/OverlayLayer.cs

@@ -1,9 +1,10 @@
 using System.Linq;
+using Avalonia.Rendering;
 using Avalonia.VisualTree;
 
 namespace Avalonia.Controls.Primitives
 {
-    public class OverlayLayer : Canvas
+    public class OverlayLayer : Canvas, ICustomSimpleHitTest
     {
         public Size AvailableSize { get; private set; }
         public static OverlayLayer GetOverlayLayer(IVisual visual)
@@ -21,6 +22,11 @@ namespace Avalonia.Controls.Primitives
             return null;
         }
         
+        public bool HitTest(Point point)
+        {
+            return Children.Any(ctrl => ctrl.TransformedBounds?.Contains(point) == true);
+        }
+        
         protected override Size ArrangeOverride(Size finalSize)
         {
             // We are saving it here since child controls might need to know the entire size of the overlay