From fe043047dbb192fa58b022efcfc7b69807f907a9 Mon Sep 17 00:00:00 2001 From: BDisp Date: Sat, 29 Feb 2020 16:50:37 +0000 Subject: [PATCH] Resizing the MessageBox width to accommodate all message text (#299) * Fixed key events traversal for modal dialogs The key must be propagated initially to the first chain element before evaluating if we should stop because of the handled or the Modal condition. Otherwise the modal dialog won't get any process key notification. This fixes https://github.com/migueldeicaza/gui.cs/commit/c072e29a684068af50e1b9e284213b3839dad804 * Resizing the MessageBox width to accommodate all message text Co-authored-by: Adrian Alonso --- Terminal.Gui/Dialogs/MessageBox.cs | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/Terminal.Gui/Dialogs/MessageBox.cs b/Terminal.Gui/Dialogs/MessageBox.cs index e038bf757..bbb53acf9 100644 --- a/Terminal.Gui/Dialogs/MessageBox.cs +++ b/Terminal.Gui/Dialogs/MessageBox.cs @@ -43,7 +43,7 @@ namespace Terminal.Gui { /// Width for the window. /// Height for the window. /// Title for the query. - /// Message to display, might contain multiple lines.. + /// Message to display, might contain multiple lines. /// Array of buttons to add. public static int ErrorQuery (int width, int height, string title, string message, params string [] buttons) { @@ -55,10 +55,10 @@ namespace Terminal.Gui { int textWidth = Label.MaxWidth (message, width); int clicked = -1, count = 0; - var d = new Dialog (title, width, height); + var d = new Dialog (title, Math.Max(width, textWidth) + 4, height); if (useErrorColors) d.ColorScheme = Colors.Error; - + foreach (var s in buttons) { int n = count++; var b = new Button (s); @@ -69,7 +69,7 @@ namespace Terminal.Gui { d.AddButton (b); } if (message != null) { - var l = new Label ((width - 4 - textWidth) / 2, 0, message); + var l = new Label (textWidth > width ? 0 : (width - 4 - textWidth) / 2, 0, message); d.Add (l); }