diff --git a/Terminal.Gui/Core/View.cs b/Terminal.Gui/Core/View.cs index cba2baf75..24a2ca606 100644 --- a/Terminal.Gui/Core/View.cs +++ b/Terminal.Gui/Core/View.cs @@ -621,18 +621,13 @@ namespace Terminal.Gui { container.ChildNeedsDisplay (); if (subviews == null) return; - foreach (var view in subviews) { - if (IsInitialized && !view.IsInitialized) { - view.BeginInit (); - view.EndInit (); - } + foreach (var view in subviews) if (view.Frame.IntersectsWith (region)) { var childRegion = Rect.Intersect (view.Frame, region); childRegion.X -= view.Frame.X; childRegion.Y -= view.Frame.Y; view.SetNeedsDisplay (childRegion); } - } } internal bool childNeedsDisplay; @@ -671,6 +666,9 @@ namespace Terminal.Gui { CanFocus = true; view.tabIndex = tabIndexes.IndexOf (view); } + if (IsInitialized) { + view.BeginInit (); + } SetNeedsLayout (); SetNeedsDisplay (); } diff --git a/UnitTests/ViewTests.cs b/UnitTests/ViewTests.cs index 378d42e75..fec7fd00f 100644 --- a/UnitTests/ViewTests.cs +++ b/UnitTests/ViewTests.cs @@ -700,9 +700,6 @@ namespace Terminal.Gui { v1.Add (sv1); - while (!sv1.CanFocus) { - } - Application.Refresh (); t.Running = false; };