From 1e00b3fe3f22e5f7a42fab157fbfe67ac6e393af Mon Sep 17 00:00:00 2001 From: Dan Walmsley Date: Fri, 27 Sep 2019 12:25:39 +0100 Subject: [PATCH] fix build --- samples/ControlCatalog/MainWindow.xaml.cs | 2 +- src/Avalonia.FreeDesktop/DBusMenuExporter.cs | 13 +++++++------ 2 files changed, 8 insertions(+), 7 deletions(-) diff --git a/samples/ControlCatalog/MainWindow.xaml.cs b/samples/ControlCatalog/MainWindow.xaml.cs index 9f62c0da38..819ab0655a 100644 --- a/samples/ControlCatalog/MainWindow.xaml.cs +++ b/samples/ControlCatalog/MainWindow.xaml.cs @@ -30,7 +30,7 @@ namespace ControlCatalog }; DataContext = new MainWindowViewModel(_notificationArea); - _recentMenu = NativeMenu.GetMenu(this).Items[0].Menu.Items[1].Menu; + _recentMenu = ((NativeMenu.GetMenu(this).Items[0] as NativeMenuItem).Menu.Items[1] as NativeMenuItem).Menu; } public void OnOpenClicked(object sender, EventArgs args) diff --git a/src/Avalonia.FreeDesktop/DBusMenuExporter.cs b/src/Avalonia.FreeDesktop/DBusMenuExporter.cs index 1a9a7bc231..0ab949ee69 100644 --- a/src/Avalonia.FreeDesktop/DBusMenuExporter.cs +++ b/src/Avalonia.FreeDesktop/DBusMenuExporter.cs @@ -107,8 +107,8 @@ namespace Avalonia.FreeDesktop foreach (var i in _idsToItems.Values) { i.PropertyChanged -= OnItemPropertyChanged; - if (i.Menu != null) - ((INotifyCollectionChanged)i.Menu.Items).CollectionChanged -= OnMenuItemsChanged; + if (i is NativeMenuItem nmi) + ((INotifyCollectionChanged)nmi.Menu.Items).CollectionChanged -= OnMenuItemsChanged; } _idsToItems.Clear(); _itemsToIds.Clear(); @@ -129,7 +129,7 @@ namespace Avalonia.FreeDesktop if (id == 0) return (null, _menu); _idsToItems.TryGetValue(id, out var item); - return (item, item?.Menu); + return (item, (item as NativeMenuItem)?.Menu); } private int GetId(NativeMenuItemBase item) @@ -140,8 +140,8 @@ namespace Avalonia.FreeDesktop _idsToItems[id] = item; _itemsToIds[item] = id; item.PropertyChanged += OnItemPropertyChanged; - if (item.Menu != null) - ((INotifyCollectionChanged)item.Menu.Items).CollectionChanged += OnMenuItemsChanged; + if (item is NativeMenuItem nmi) + ((INotifyCollectionChanged)nmi.Menu.Items).CollectionChanged += OnMenuItemsChanged; return id; } @@ -281,7 +281,8 @@ namespace Avalonia.FreeDesktop for (var c = 0; c < children.Length; c++) { var ch = menu.Items[c]; - children[c] = GetLayout(ch, ch.Menu, depth == -1 ? -1 : depth - 1, propertyNames); + + children[c] = GetLayout(ch, (ch as NativeMenuItem)?.Menu, depth == -1 ? -1 : depth - 1, propertyNames); } return (id, props, children);