Skip to content

Commit 07672c3

Browse files
authored
Merge pull request #3744 from BDisp/v1_3740_disabled-menuitem-exception-fix
V1 - Fixes #3740. Disabled MenuItem triggers exception.
2 parents 962d552 + 42b9a4d commit 07672c3

File tree

2 files changed

+5
-9
lines changed

2 files changed

+5
-9
lines changed

Terminal.Gui/Views/Menu.cs

+1-1
Original file line numberDiff line numberDiff line change
@@ -1238,7 +1238,7 @@ public virtual void OnMenuOpened ()
12381238
mi = openCurrentMenu.barItems.Children [openCurrentMenu.current];
12391239
} else if (openCurrentMenu.barItems.IsTopLevel) {
12401240
mi = openCurrentMenu.barItems;
1241-
} else {
1241+
} else if (openCurrentMenu?.current > -1) {
12421242
mi = openMenu.barItems.Children [openMenu.current];
12431243
}
12441244
MenuOpened?.Invoke (mi);

UnitTests/Menus/MenuTests.cs

+4-8
Original file line numberDiff line numberDiff line change
@@ -219,8 +219,7 @@ public void MenuOpened_On_Disabled_MenuItem ()
219219
View = mCurrent
220220
}));
221221
Assert.True (menu.IsMenuOpen);
222-
Assert.Equal ("_File", miCurrent.Parent.Title);
223-
Assert.Equal ("_New", miCurrent.Title);
222+
Assert.Null (miCurrent);
224223

225224
Assert.True (mCurrent.MouseEvent (new MouseEvent () {
226225
X = 1,
@@ -229,8 +228,7 @@ public void MenuOpened_On_Disabled_MenuItem ()
229228
View = mCurrent
230229
}));
231230
Assert.True (menu.IsMenuOpen);
232-
Assert.Equal ("_File", miCurrent.Parent.Title);
233-
Assert.Equal ("_New", miCurrent.Title);
231+
Assert.Null (miCurrent);
234232

235233
Assert.True (mCurrent.MouseEvent (new MouseEvent () {
236234
X = 1,
@@ -239,8 +237,7 @@ public void MenuOpened_On_Disabled_MenuItem ()
239237
View = mCurrent
240238
}));
241239
Assert.True (menu.IsMenuOpen);
242-
Assert.Equal ("_File", miCurrent.Parent.Title);
243-
Assert.Equal ("_Save", miCurrent.Title);
240+
Assert.Null (miCurrent);
244241

245242
// close the menu
246243
Assert.True (menu.MouseEvent (new MouseEvent () {
@@ -265,8 +262,7 @@ public void MenuOpened_On_Disabled_MenuItem ()
265262

266263
Assert.True (mCurrent.ProcessKey (new KeyEvent (Key.CursorUp, new KeyModifiers ())));
267264
Assert.True (menu.IsMenuOpen);
268-
Assert.Equal ("_File", miCurrent.Parent.Title);
269-
Assert.Equal ("_New", miCurrent.Title);
265+
Assert.Null (miCurrent);
270266

271267
// close the menu
272268
Assert.True (menu.ProcessHotKey (new KeyEvent (Key.F9, new KeyModifiers ())));

0 commit comments

Comments
 (0)