Skip to content

Commit 384cefc

Browse files
committed
Merge branch 'v2_develop' of tig:gui-cs/Terminal.Gui into v2_develop
2 parents 726770f + 56c8b20 commit 384cefc

File tree

2 files changed

+40
-0
lines changed

2 files changed

+40
-0
lines changed

Terminal.Gui/Views/Menu/MenuBar.cs

+10
Original file line numberDiff line numberDiff line change
@@ -743,6 +743,11 @@ internal void NextMenu (bool isSubMenu = false, bool ignoreUseSubMenusSingleFram
743743
return;
744744
}
745745

746+
if (_selected == -1)
747+
{
748+
return;
749+
}
750+
746751
OpenMenu (_selected);
747752

748753
SelectEnabledItem (
@@ -984,6 +989,11 @@ internal void PreviousMenu (bool isSubMenu = false, bool ignoreUseSubMenusSingle
984989
return;
985990
}
986991

992+
if (_selected == -1)
993+
{
994+
return;
995+
}
996+
987997
OpenMenu (_selected);
988998

989999
if (!SelectEnabledItem (

Tests/UnitTests/Views/ContextMenuTests.cs

+30
Original file line numberDiff line numberDiff line change
@@ -2105,4 +2105,34 @@ public void Mouse_Pressed_Released_Clicked (int button)
21052105

21062106
top.Dispose ();
21072107
}
2108+
2109+
[Fact]
2110+
[AutoInitShutdown]
2111+
public void Menu_Without_SubMenu_Is_Closed_When_Pressing_Key_Right_Or_Key_Left ()
2112+
{
2113+
var cm = new ContextMenu ();
2114+
2115+
var menuItems = new MenuBarItem (
2116+
[
2117+
new ("_New", string.Empty, null),
2118+
new ("_Save", string.Empty, null)
2119+
]
2120+
);
2121+
var top = new Toplevel ();
2122+
Application.Begin (top);
2123+
2124+
cm.Show (menuItems);
2125+
Assert.True (cm.MenuBar!.IsMenuOpen);
2126+
2127+
Assert.True (Application.RaiseKeyDownEvent (Key.CursorRight));
2128+
Assert.False (cm.MenuBar!.IsMenuOpen);
2129+
2130+
cm.Show (menuItems);
2131+
Assert.True (cm.MenuBar!.IsMenuOpen);
2132+
2133+
Assert.True (Application.RaiseKeyDownEvent (Key.CursorLeft));
2134+
Assert.False (cm.MenuBar!.IsMenuOpen);
2135+
2136+
top.Dispose ();
2137+
}
21082138
}

0 commit comments

Comments
 (0)