diff --git a/src/Avalonia.Native/AvaloniaNativeMenuExporter.cs b/src/Avalonia.Native/AvaloniaNativeMenuExporter.cs index 6c375b8ffb..853ed0fb5a 100644 --- a/src/Avalonia.Native/AvaloniaNativeMenuExporter.cs +++ b/src/Avalonia.Native/AvaloniaNativeMenuExporter.cs @@ -101,18 +101,6 @@ namespace Avalonia.Native private void SetMenu(NativeMenu menu) { - if (_nativeMenu is null) - { - _nativeMenu = _factory.ObtainAppMenu(); - - if (_nativeMenu is null) - { - _nativeMenu = _factory.CreateMenu(); - - _nativeMenu.Initialise(this, menu, ""); - } - } - var menuItem = menu.Parent; var appMenuHolder = menuItem?.Parent; @@ -131,6 +119,18 @@ namespace Avalonia.Native menuItem.Menu = menu; + if (_nativeMenu is null) + { + _nativeMenu = _factory.ObtainAppMenu(); + + if (_nativeMenu is null) + { + _nativeMenu = _factory.CreateMenu(); + + _nativeMenu.Initialise(this, appMenuHolder, ""); + } + } + var setMenu = _nativeMenu.ManagedMenu != appMenuHolder; _nativeMenu.Update(_factory, appMenuHolder);