Fixes #836. Allows a Label display the text initially empty.

This commit is contained in:
BDisp
2020-07-31 23:56:55 +01:00
parent e658f08228
commit ad445292f6
2 changed files with 5 additions and 2 deletions

View File

@@ -47,7 +47,7 @@ namespace Terminal.Gui {
set {
text = value;
if (Size.IsEmpty) {
if (Size.Width == 0 || Size.Height == 0 || Size.Width != text.RuneCount) {
// Proivde a default size (width = length of longest line, height = 1)
// TODO: It might makem more sense for the default to be width = length of first line?
Size = new Size (TextFormatter.MaxWidth (Text, int.MaxValue), 1);
@@ -405,7 +405,7 @@ namespace Terminal.Gui {
public static Rect CalcRect (int x, int y, ustring text)
{
if (ustring.IsNullOrEmpty (text))
return Rect.Empty;
return new Rect (new Point (x, y), Size.Empty);
int mw = 0;
int ml = 1;

View File

@@ -1784,6 +1784,9 @@ namespace Terminal.Gui {
get => textFormatter.Text;
set {
textFormatter.Text = value;
if (textFormatter.Size != Bounds.Size && (width == null || Bounds.Width == 0 || height == null || Bounds.Height == 0)) {
Bounds = new Rect (Bounds.X, Bounds.Y, textFormatter.Size.Width, textFormatter.Size.Height);
}
SetNeedsDisplay ();
}
}