|
|
@@ -31,7 +31,7 @@ namespace Avalonia.Rendering.Composition
|
|
|
/// <param name="point"></param>
|
|
|
/// <param name="filter"></param>
|
|
|
/// <returns></returns>
|
|
|
- public PooledList<CompositionVisual>? TryHitTest(Point point, Func<IVisual, bool>? filter)
|
|
|
+ public PooledList<CompositionVisual>? TryHitTest(Point point, Func<CompositionVisual, bool>? filter)
|
|
|
{
|
|
|
Server.Readback.NextRead();
|
|
|
if (Root == null)
|
|
|
@@ -88,10 +88,14 @@ namespace Avalonia.Rendering.Composition
|
|
|
}
|
|
|
|
|
|
void HitTestCore(CompositionVisual visual, Point globalPoint, PooledList<CompositionVisual> result,
|
|
|
- Func<IVisual, bool>? filter)
|
|
|
+ Func<CompositionVisual, bool>? filter)
|
|
|
{
|
|
|
if (visual.Visible == false)
|
|
|
return;
|
|
|
+
|
|
|
+ if (filter != null && !filter(visual))
|
|
|
+ return;
|
|
|
+
|
|
|
if (!TryTransformTo(visual, globalPoint, out var point))
|
|
|
return;
|
|
|
|
|
|
@@ -111,7 +115,7 @@ namespace Avalonia.Rendering.Composition
|
|
|
}
|
|
|
|
|
|
// Hit-test the current node
|
|
|
- if (visual.HitTest(point, filter))
|
|
|
+ if (visual.HitTest(point))
|
|
|
result.Add(visual);
|
|
|
}
|
|
|
|