Merge branch 'v2_develop' into v2_2491-Overlapped

This commit is contained in:
Tig
2024-09-24 06:57:21 -06:00
committed by GitHub
2 changed files with 16 additions and 4 deletions

View File

@@ -351,7 +351,7 @@ public class MenuBar : View, IDesignable
/// <summary>Virtual method that will invoke the <see cref="MenuOpened"/> event if it's defined.</summary>
public virtual void OnMenuOpened ()
{
MenuItem? mi;
MenuItem? mi = null;
MenuBarItem? parent;
if (OpenCurrentMenu?.BarItems?.Children is { Length: > 0 }
@@ -368,7 +368,11 @@ public class MenuBar : View, IDesignable
else
{
parent = _openMenu?.BarItems;
mi = parent?.Children?.Length > 0 ? parent.Children [_openMenu!._currentChild] : null;
if (OpenCurrentMenu?._currentChild > -1)
{
mi = parent?.Children?.Length > 0 ? parent.Children [_openMenu!._currentChild] : null;
}
}
MenuOpened?.Invoke (this, new (parent, mi));

View File

@@ -2241,6 +2241,7 @@ wo
[AutoInitShutdown]
public void MenuOpened_On_Disabled_MenuItem ()
{
MenuItem parent = null;
MenuItem miCurrent = null;
Menu mCurrent = null;
@@ -2273,6 +2274,7 @@ wo
menu.MenuOpened += (s, e) =>
{
parent = e.Parent;
miCurrent = e.MenuItem;
mCurrent = menu._openMenu;
};
@@ -2288,6 +2290,7 @@ wo
)
);
Assert.True (menu.IsMenuOpen);
Assert.Equal ("_File", parent.Title);
Assert.Equal ("_File", miCurrent.Parent.Title);
Assert.Equal ("_New", miCurrent.Title);
@@ -2297,6 +2300,7 @@ wo
)
);
Assert.True (menu.IsMenuOpen);
Assert.Equal ("_File", parent.Title);
Assert.Equal ("_File", miCurrent.Parent.Title);
Assert.Equal ("_New", miCurrent.Title);
@@ -2306,6 +2310,7 @@ wo
)
);
Assert.True (menu.IsMenuOpen);
Assert.Equal ("_File", parent.Title);
Assert.Equal ("_File", miCurrent.Parent.Title);
Assert.Equal ("_New", miCurrent.Title);
@@ -2315,6 +2320,7 @@ wo
)
);
Assert.True (menu.IsMenuOpen);
Assert.Equal ("_File", parent.Title);
Assert.Equal ("_File", miCurrent.Parent.Title);
Assert.Equal ("_Save", miCurrent.Title);
@@ -2331,18 +2337,20 @@ wo
Assert.True (menu.IsMenuOpen);
// The _New doc is enabled but the sub-menu isn't enabled. Is show but can't be selected and executed
Assert.Equal ("_New", parent.Title);
Assert.Equal ("_New", miCurrent.Parent.Title);
Assert.Equal ("_New doc", miCurrent.Title);
Assert.True (mCurrent.NewKeyDownEvent (Key.CursorDown));
Assert.True (menu.IsMenuOpen);
Assert.Equal ("_File", parent.Title);
Assert.Equal ("_File", miCurrent.Parent.Title);
Assert.Equal ("_Save", miCurrent.Title);
Assert.True (mCurrent.NewKeyDownEvent (Key.CursorUp));
Assert.True (menu.IsMenuOpen);
Assert.Equal ("_File", miCurrent.Parent.Title);
Assert.Equal ("_New", miCurrent.Title);
Assert.Equal ("_File", parent.Title);
Assert.Null (miCurrent);
// close the menu
Assert.True (menu.NewKeyDownEvent (menu.Key));