From aa37fa40d52315d658136e236aa0b9123accfa59 Mon Sep 17 00:00:00 2001 From: Dan Walmsley Date: Thu, 26 Sep 2019 20:36:47 +0100 Subject: [PATCH] osx always exports app menu if it exists. --- .../AvaloniaNativeMenuExporter.cs | 21 +++++++++---------- 1 file changed, 10 insertions(+), 11 deletions(-) diff --git a/src/Avalonia.Native/AvaloniaNativeMenuExporter.cs b/src/Avalonia.Native/AvaloniaNativeMenuExporter.cs index bc626add91..dc713df56c 100644 --- a/src/Avalonia.Native/AvaloniaNativeMenuExporter.cs +++ b/src/Avalonia.Native/AvaloniaNativeMenuExporter.cs @@ -45,11 +45,10 @@ namespace Avalonia.Native { private IAvaloniaNativeFactory _factory; private NativeMenu _menu; - private bool _resetQueued; + private bool _resetQueued; private bool _exported = false; private IAvnWindow _nativeWindow; - private bool _prependAppMenu; - private List _menuItems = new List(); + private List _menuItems = new List(); public AvaloniaNativeMenuExporter(IAvnWindow nativeWindow, IAvaloniaNativeFactory factory) { @@ -76,7 +75,7 @@ namespace Avalonia.Native public void SetPrependApplicationMenu(bool prepend) { - _prependAppMenu = prepend; + // OSX always exports the app menu. } private void OnItemPropertyChanged(object sender, AvaloniaPropertyChangedEventArgs e) @@ -106,10 +105,10 @@ namespace Avalonia.Native ((INotifyCollectionChanged)i.Menu.Items).CollectionChanged -= OnMenuItemsChanged; } - _menuItems.Clear(); + _menuItems.Clear(); SetMenu(_nativeWindow, _menu.Items); - + _exported = true; } @@ -132,7 +131,7 @@ namespace Avalonia.Native private void AddMenuItem(NativeMenuItem item) { - if(item.Menu?.Items != null) + if (item.Menu?.Items != null) { ((INotifyCollectionChanged)item.Menu.Items).CollectionChanged += OnMenuItemsChanged; } @@ -237,10 +236,10 @@ namespace Avalonia.Native private void SetMenu(IAvnWindow avnWindow, ICollection menuItems) { - if (_prependAppMenu) - { - var menu = NativeMenu.GetMenu(Application.Current); + var menu = NativeMenu.GetMenu(Application.Current); + if (menu != null) + { var items = menuItems.ToList(); items.InsertRange(0, menu.Items); @@ -250,7 +249,7 @@ namespace Avalonia.Native var appMenu = avnWindow.ObtainMainMenu(); - if(appMenu is null) + if (appMenu is null) { appMenu = _factory.CreateMenu();