From 7aa531530be53bd70c6a33d64d951097838e6593 Mon Sep 17 00:00:00 2001 From: Dan Walmsley Date: Tue, 23 May 2023 20:25:55 +0100 Subject: [PATCH] implent popup routing events to parent toplevel. --- src/Avalonia.Base/Input/PointerEventArgs.cs | 11 ++++++++++- .../Controls/PopupRoot.xaml | 18 +++++++++--------- 2 files changed, 19 insertions(+), 10 deletions(-) diff --git a/src/Avalonia.Base/Input/PointerEventArgs.cs b/src/Avalonia.Base/Input/PointerEventArgs.cs index 7f82199b56..0556d8702f 100644 --- a/src/Avalonia.Base/Input/PointerEventArgs.cs +++ b/src/Avalonia.Base/Input/PointerEventArgs.cs @@ -70,7 +70,16 @@ namespace Avalonia.Input if (relativeTo == null) return pt; - return pt * _rootVisual.TransformToVisual(relativeTo) ?? default; + if (!ReferenceEquals(_rootVisual, relativeTo.VisualRoot)) + { + var screenPt = _rootVisual.PointToScreen(pt); + + return relativeTo.PointToClient(screenPt); + } + else + { + return pt * _rootVisual.TransformToVisual(relativeTo) ?? default; + } } /// diff --git a/src/Avalonia.Themes.Fluent/Controls/PopupRoot.xaml b/src/Avalonia.Themes.Fluent/Controls/PopupRoot.xaml index 16be9630c1..567c9b72e7 100644 --- a/src/Avalonia.Themes.Fluent/Controls/PopupRoot.xaml +++ b/src/Avalonia.Themes.Fluent/Controls/PopupRoot.xaml @@ -13,15 +13,15 @@ - - - - - + + + + +