diff --git a/src/Avalonia.Native/PopupImpl.cs b/src/Avalonia.Native/PopupImpl.cs index 238a09440b..238f2be0a1 100644 --- a/src/Avalonia.Native/PopupImpl.cs +++ b/src/Avalonia.Native/PopupImpl.cs @@ -87,8 +87,20 @@ namespace Avalonia.Native { } - public void TakeFocus() + public void TakeFocus() { + var parent = _parent; + + while (parent != null) + { + if (parent is PopupImpl popup) + parent = popup._parent; + else + break; + } + + if (parent is WindowImpl w) + w.Native.TakeFocusFromChildren(); } public IPopupPositioner PopupPositioner { get; }