Skip to content

Commit 961c693

Browse files
committed
fix win32native to managed menu exporter.
1 parent a51acea commit 961c693

File tree

2 files changed

+10
-5
lines changed

2 files changed

+10
-5
lines changed

src/Avalonia.Controls/MenuItem.cs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -304,7 +304,7 @@ public bool StaysOpenOnClick
304304
bool IMenuItem.IsPointerOverSubMenu => _popup?.IsPointerOverPopup ?? false;
305305

306306
/// <inheritdoc/>
307-
IMenuElement? IMenuItem.Parent => this.FindLogicalAncestorOfType<IMenuElement>();
307+
IMenuElement? IMenuItem.Parent => Parent as IMenuElement;
308308

309309
protected override bool IsEnabledCore => base.IsEnabledCore && _commandCanExecute;
310310

src/Windows/Avalonia.Win32/Win32NativeToManagedMenuExporter.cs

Lines changed: 9 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,5 @@
11
using System.Collections.Generic;
2+
using Avalonia.Collections;
23
using Avalonia.Controls;
34
using Avalonia.Controls.Platform;
45

@@ -15,13 +16,15 @@ public void SetNativeMenu(NativeMenu? nativeMenu)
1516
_nativeMenu = nativeMenu;
1617
}
1718

18-
private IEnumerable<MenuItem> Populate(NativeMenu nativeMenu)
19+
private AvaloniaList<MenuItem> Populate(NativeMenu nativeMenu)
1920
{
21+
var result = new AvaloniaList<MenuItem>();
22+
2023
foreach (var menuItem in nativeMenu.Items)
2124
{
2225
if (menuItem is NativeMenuItemSeparator)
2326
{
24-
yield return new MenuItem { Header = "-" };
27+
result.Add(new MenuItem { Header = "-" });
2528
}
2629
else if (menuItem is NativeMenuItem item)
2730
{
@@ -36,12 +39,14 @@ private IEnumerable<MenuItem> Populate(NativeMenu nativeMenu)
3639
newItem.Click += (_, __) => bridge.RaiseClicked();
3740
}
3841

39-
yield return newItem;
42+
result.Add(newItem);
4043
}
4144
}
45+
46+
return result;
4247
}
4348

44-
public IEnumerable<MenuItem>? GetMenu()
49+
public AvaloniaList<MenuItem>? GetMenu()
4550
{
4651
if (_nativeMenu != null)
4752
{

0 commit comments

Comments
 (0)