|
|
|
@ -65,7 +65,17 @@ namespace Avalonia.Input |
|
|
|
return default; |
|
|
|
if (relativeTo == null) |
|
|
|
return pt; |
|
|
|
return pt * _rootVisual.TransformToVisual(relativeTo) ?? default; |
|
|
|
|
|
|
|
var pointRootVisual = _rootVisual; |
|
|
|
if (relativeTo.VisualRoot is { } root |
|
|
|
&& _rootVisual != root) |
|
|
|
{ |
|
|
|
var screenPoint = _rootVisual.PointToScreen(pt); |
|
|
|
pt = relativeTo.VisualRoot.PointToClient(screenPoint); |
|
|
|
pointRootVisual = root; |
|
|
|
} |
|
|
|
|
|
|
|
return pt * pointRootVisual.TransformToVisual(relativeTo) ?? default; |
|
|
|
} |
|
|
|
|
|
|
|
/// <summary>
|
|
|
|
|