Browse Source
Merge pull request #11535 from YohDeadfall/fix-dismiss-overlay
Ignore non hittable elements on hit test in `LightDismissOverlayLayer`
pull/11563/head
Dan Walmsley
3 years ago
committed by
GitHub
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
1 changed files with
2 additions and
3 deletions
-
src/Avalonia.Controls/Primitives/LightDismissOverlayLayer.cs
|
|
@ -46,13 +46,12 @@ namespace Avalonia.Controls.Primitives |
|
|
return manager?.LightDismissOverlayLayer; |
|
|
return manager?.LightDismissOverlayLayer; |
|
|
} |
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
/// <inheritdoc />
|
|
|
public bool HitTest(Point point) |
|
|
public bool HitTest(Point point) |
|
|
{ |
|
|
{ |
|
|
if (InputPassThroughElement is Visual v) |
|
|
if (InputPassThroughElement is Visual v) |
|
|
{ |
|
|
{ |
|
|
var hit = ((Visual?)VisualRoot)?.GetVisualAt(point, x => x != this); |
|
|
if (VisualRoot is IInputElement ie && ie.InputHitTest(point, x => x != this) is Visual hit) |
|
|
|
|
|
|
|
|
if (hit is object) |
|
|
|
|
|
{ |
|
|
{ |
|
|
return !v.IsVisualAncestorOf(hit); |
|
|
return !v.IsVisualAncestorOf(hit); |
|
|
} |
|
|
} |
|
|
|