diff --git a/Terminal.Gui/Views/ContextMenu.cs b/Terminal.Gui/Views/ContextMenu.cs index 71d3c41b3..84e4db4da 100644 --- a/Terminal.Gui/Views/ContextMenu.cs +++ b/Terminal.Gui/Views/ContextMenu.cs @@ -52,7 +52,10 @@ namespace Terminal.Gui { public ContextMenu (int x, int y, MenuBarItem menuItems) { if (IsShow) { - Hide (); + if (menuBar.SuperView != null) { + Hide (); + } + IsShow = false; } MenuItems = menuItems; Position = new Point (x, y); @@ -126,7 +129,7 @@ namespace Terminal.Gui { } else if (ForceMinimumPosToZero && position.Y < 0) { position.Y = 0; } - + menuBar = new MenuBar (new [] { MenuItems }) { X = position.X, Y = position.Y, diff --git a/Terminal.Gui/Windows/MessageBox.cs b/Terminal.Gui/Windows/MessageBox.cs index 9d9c74864..8afa8fc5d 100644 --- a/Terminal.Gui/Windows/MessageBox.cs +++ b/Terminal.Gui/Windows/MessageBox.cs @@ -238,7 +238,10 @@ namespace Terminal.Gui { static int QueryFull (bool useErrorColors, int width, int height, ustring title, ustring message, int defaultButton = 0, Border border = null, params ustring [] buttons) { - const int defaultWidth = 50; + int defaultWidth = 50; + if (defaultWidth > Application.Driver.Cols / 2) { + defaultWidth = (int)(Application.Driver.Cols * 0.60f); + } int maxWidthLine = TextFormatter.MaxWidthLine (message); if (maxWidthLine > Application.Driver.Cols) { maxWidthLine = Application.Driver.Cols; diff --git a/UnitTests/MessageBoxTests.cs b/UnitTests/MessageBoxTests.cs index 2c79aa299..dc9881551 100644 --- a/UnitTests/MessageBoxTests.cs +++ b/UnitTests/MessageBoxTests.cs @@ -30,11 +30,11 @@ namespace Terminal.Gui.Views { } else if (iterations == 1) { Application.Top.Redraw (Application.Top.Bounds); TestHelpers.AssertDriverContentsWithFrameAre (@" - ┌ Title ─────────────────────────────────────────┐ - │ Message │ - │ │ - │ │ - └────────────────────────────────────────────────┘ + ┌ Title ───────────────────────────────────────┐ + │ Message │ + │ │ + │ │ + └──────────────────────────────────────────────┘ ", output); Application.RequestStop (); diff --git a/UnitTests/UnitTests.csproj b/UnitTests/UnitTests.csproj index 7faac0b68..737313d02 100644 --- a/UnitTests/UnitTests.csproj +++ b/UnitTests/UnitTests.csproj @@ -22,7 +22,7 @@ - +