Browse Source

OSX fix logic for setting app menu.

pull/2978/head
Dan Walmsley 7 years ago
parent
commit
b7e9a50a42
  1. 23
      src/Avalonia.Native/AvaloniaNativeMenuExporter.cs

23
src/Avalonia.Native/AvaloniaNativeMenuExporter.cs

@ -113,7 +113,11 @@ namespace Avalonia.Native
if(_nativeWindow is null) if(_nativeWindow is null)
{ {
_menu = NativeMenu.GetMenu(Application.Current); _menu = NativeMenu.GetMenu(Application.Current);
SetMenu(_menu?.Items);
if(_menu != null)
{
SetMenu(_menu);
}
} }
else else
{ {
@ -259,13 +263,8 @@ namespace Avalonia.Native
} }
} }
private void SetMenu(ICollection<NativeMenuItemBase> menuItems) private void SetMenu(NativeMenu menu)
{ {
if (menuItems is null)
{
menuItems = new List<NativeMenuItemBase>();
}
var appMenu = _factory.ObtainAppMenu(); var appMenu = _factory.ObtainAppMenu();
if (appMenu is null) if (appMenu is null)
@ -273,15 +272,15 @@ namespace Avalonia.Native
appMenu = _factory.CreateMenu(); appMenu = _factory.CreateMenu();
} }
var menuItem = new NativeMenuItem(); var menuItem = menu.Parent;
menuItem.Menu = new NativeMenu(); if(menu.Parent is null)
foreach (var item in menuItems)
{ {
menuItem.Menu.Add(item); menuItem = new NativeMenuItem();
} }
menuItem.Menu = menu;
appMenu.Clear(); appMenu.Clear();
AddItemsToMenu(appMenu, new List<NativeMenuItemBase> { menuItem }); AddItemsToMenu(appMenu, new List<NativeMenuItemBase> { menuItem });

Loading…
Cancel
Save