From 21050c123eac0590b1ab816671ff9a7b97b4df96 Mon Sep 17 00:00:00 2001 From: BDisp Date: Thu, 16 Jul 2020 19:07:21 +0100 Subject: [PATCH 1/2] Fixes #800. Menu IsTopLevel executes on button clicked and setting Run close driver to false because of Unix. --- Terminal.Gui/Views/Menu.cs | 4 ++-- UICatalog/Scenario.cs | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/Terminal.Gui/Views/Menu.cs b/Terminal.Gui/Views/Menu.cs index 549ab0e71..dfa78e45a 100644 --- a/Terminal.Gui/Views/Menu.cs +++ b/Terminal.Gui/Views/Menu.cs @@ -1225,9 +1225,9 @@ namespace Terminal.Gui { menu.Dispose (); } } else if (me.Flags == MouseFlags.Button1Pressed || me.Flags == MouseFlags.Button1DoubleClicked || me.Flags == MouseFlags.Button1TripleClicked) { - if (IsMenuOpen) { + if (me.Flags != MouseFlags.Button1Pressed && IsMenuOpen) { CloseAllMenus (); - } else { + } else if (!Menus [i].IsTopLevel) { Activate (i); } } else if (selected != i && selected > -1 && (me.Flags == MouseFlags.ReportMousePosition || diff --git a/UICatalog/Scenario.cs b/UICatalog/Scenario.cs index 45d2aae16..1073db24b 100644 --- a/UICatalog/Scenario.cs +++ b/UICatalog/Scenario.cs @@ -198,7 +198,7 @@ namespace UICatalog { public virtual void Run () { // This method already performs a later automatic shutdown. - Application.Run (Top); + Application.Run (Top, false); } /// From 1feb385994e7111b4c73e960b8e36178ad8b2aba Mon Sep 17 00:00:00 2001 From: BDisp Date: Thu, 16 Jul 2020 19:21:47 +0100 Subject: [PATCH 2/2] Fixing a bug. --- Terminal.Gui/Views/Menu.cs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Terminal.Gui/Views/Menu.cs b/Terminal.Gui/Views/Menu.cs index dfa78e45a..a54415339 100644 --- a/Terminal.Gui/Views/Menu.cs +++ b/Terminal.Gui/Views/Menu.cs @@ -1225,7 +1225,7 @@ namespace Terminal.Gui { menu.Dispose (); } } else if (me.Flags == MouseFlags.Button1Pressed || me.Flags == MouseFlags.Button1DoubleClicked || me.Flags == MouseFlags.Button1TripleClicked) { - if (me.Flags != MouseFlags.Button1Pressed && IsMenuOpen) { + if (IsMenuOpen && !Menus [i].IsTopLevel) { CloseAllMenus (); } else if (!Menus [i].IsTopLevel) { Activate (i);