diff --git a/Terminal.Gui/Views/Menu/Menu.cs b/Terminal.Gui/Views/Menu/Menu.cs index 9fcf3fd4c..e6ea44cb6 100644 --- a/Terminal.Gui/Views/Menu/Menu.cs +++ b/Terminal.Gui/Views/Menu/Menu.cs @@ -101,7 +101,7 @@ internal sealed class Menu : View for (var i = 0; i < _barItems.Children?.Length; i++) { - if (_barItems.Children [i]!.IsEnabled ()) + if (_barItems.Children [i]?.IsEnabled () == true) { _currentChild = i; diff --git a/UnitTests/Views/MenuBarTests.cs b/UnitTests/Views/MenuBarTests.cs index 5208a6cbe..86ebda393 100644 --- a/UnitTests/Views/MenuBarTests.cs +++ b/UnitTests/Views/MenuBarTests.cs @@ -148,6 +148,30 @@ public class MenuBarTests (ITestOutputHelper output) top.Dispose (); } + [Fact] + [AutoInitShutdown] + public void CanExecute_False_Does_Not_Throws () + { + var menu = new MenuBar + { + Menus = + [ + new ("File", new MenuItem [] + { + new ("New", "", null, () => false), + null, + new ("Quit", "", null) + }) + ] + }; + var top = new Toplevel (); + top.Add (menu); + Application.Begin (top); + + Assert.True (menu.NewKeyDownEvent (menu.Key)); + Assert.True (menu.IsMenuOpen); + } + [Fact] [AutoInitShutdown] public void CanExecute_HotKey ()