Browse Source

tmp: fix non deffered rendering hit testing pr: 3357 - merged

Andrey Kunchev 6 years ago
parent
commit
8ae4113869
  1. 8
      src/Avalonia.Controls/Notifications/WindowNotificationManager.cs
  2. 2
      src/Avalonia.Controls/Primitives/AdornerLayer.cs

8
src/Avalonia.Controls/Notifications/WindowNotificationManager.cs

@ -7,6 +7,7 @@ using System.Linq;
using System.Reactive.Linq;
using System.Threading.Tasks;
using Avalonia.Controls.Primitives;
using Avalonia.Rendering;
using Avalonia.VisualTree;
namespace Avalonia.Controls.Notifications
@ -14,7 +15,7 @@ namespace Avalonia.Controls.Notifications
/// <summary>
/// An <see cref="INotificationManager"/> that displays notifications in a <see cref="Window"/>.
/// </summary>
public class WindowNotificationManager : TemplatedControl, IManagedNotificationManager
public class WindowNotificationManager : TemplatedControl, IManagedNotificationManager, ICustomSimpleHitTest
{
private IList _items;
@ -153,5 +154,10 @@ namespace Avalonia.Controls.Notifications
adornerLayer?.Children.Add(this);
}
public bool HitTest(Point point)
{
return VisualChildren.Any(ctrl => (ctrl as ICustomSimpleHitTest)?.HitTest(point) ?? ctrl.TransformedBounds?.Contains(point) == true);
}
}
}

2
src/Avalonia.Controls/Primitives/AdornerLayer.cs

@ -140,7 +140,7 @@ namespace Avalonia.Controls.Primitives
public bool HitTest(Point point)
{
return Children.Any(ctrl => ctrl.TransformedBounds?.Contains(point) == true);
return Children.Any(ctrl => (ctrl as ICustomSimpleHitTest)?.HitTest(point) ?? ctrl.TransformedBounds?.Contains(point) == true);
}
private class AdornedElementInfo

Loading…
Cancel
Save