Fixes #3740. Disabled MenuItem triggers exception.

This commit is contained in:
BDisp
2024-09-18 22:34:09 +01:00
parent 962d552835
commit 42b9a4d4af
2 changed files with 5 additions and 9 deletions

View File

@@ -1238,7 +1238,7 @@ namespace Terminal.Gui {
mi = openCurrentMenu.barItems.Children [openCurrentMenu.current]; mi = openCurrentMenu.barItems.Children [openCurrentMenu.current];
} else if (openCurrentMenu.barItems.IsTopLevel) { } else if (openCurrentMenu.barItems.IsTopLevel) {
mi = openCurrentMenu.barItems; mi = openCurrentMenu.barItems;
} else { } else if (openCurrentMenu?.current > -1) {
mi = openMenu.barItems.Children [openMenu.current]; mi = openMenu.barItems.Children [openMenu.current];
} }
MenuOpened?.Invoke (mi); MenuOpened?.Invoke (mi);

View File

@@ -219,8 +219,7 @@ Edit
View = mCurrent View = mCurrent
})); }));
Assert.True (menu.IsMenuOpen); Assert.True (menu.IsMenuOpen);
Assert.Equal ("_File", miCurrent.Parent.Title); Assert.Null (miCurrent);
Assert.Equal ("_New", miCurrent.Title);
Assert.True (mCurrent.MouseEvent (new MouseEvent () { Assert.True (mCurrent.MouseEvent (new MouseEvent () {
X = 1, X = 1,
@@ -229,8 +228,7 @@ Edit
View = mCurrent View = mCurrent
})); }));
Assert.True (menu.IsMenuOpen); Assert.True (menu.IsMenuOpen);
Assert.Equal ("_File", miCurrent.Parent.Title); Assert.Null (miCurrent);
Assert.Equal ("_New", miCurrent.Title);
Assert.True (mCurrent.MouseEvent (new MouseEvent () { Assert.True (mCurrent.MouseEvent (new MouseEvent () {
X = 1, X = 1,
@@ -239,8 +237,7 @@ Edit
View = mCurrent View = mCurrent
})); }));
Assert.True (menu.IsMenuOpen); Assert.True (menu.IsMenuOpen);
Assert.Equal ("_File", miCurrent.Parent.Title); Assert.Null (miCurrent);
Assert.Equal ("_Save", miCurrent.Title);
// close the menu // close the menu
Assert.True (menu.MouseEvent (new MouseEvent () { Assert.True (menu.MouseEvent (new MouseEvent () {
@@ -265,8 +262,7 @@ Edit
Assert.True (mCurrent.ProcessKey (new KeyEvent (Key.CursorUp, new KeyModifiers ()))); Assert.True (mCurrent.ProcessKey (new KeyEvent (Key.CursorUp, new KeyModifiers ())));
Assert.True (menu.IsMenuOpen); Assert.True (menu.IsMenuOpen);
Assert.Equal ("_File", miCurrent.Parent.Title); Assert.Null (miCurrent);
Assert.Equal ("_New", miCurrent.Title);
// close the menu // close the menu
Assert.True (menu.ProcessHotKey (new KeyEvent (Key.F9, new KeyModifiers ()))); Assert.True (menu.ProcessHotKey (new KeyEvent (Key.F9, new KeyModifiers ())));