diff --git a/Terminal.Gui/Core/Toplevel.cs b/Terminal.Gui/Core/Toplevel.cs index 4e2c6ca1d..bb647bf21 100644 --- a/Terminal.Gui/Core/Toplevel.cs +++ b/Terminal.Gui/Core/Toplevel.cs @@ -264,7 +264,7 @@ namespace Terminal.Gui { if (IsCurrentTop || this == Application.Top) { if (NeedDisplay != null && !NeedDisplay.IsEmpty) { Driver.SetAttribute (Colors.TopLevel.Normal); - Clear (Frame); + Clear (bounds); Driver.SetAttribute (Colors.Base.Normal); } foreach (var view in Subviews) { diff --git a/Terminal.Gui/Core/Window.cs b/Terminal.Gui/Core/Window.cs index 37184cbf0..919204171 100644 --- a/Terminal.Gui/Core/Window.cs +++ b/Terminal.Gui/Core/Window.cs @@ -201,7 +201,10 @@ namespace Terminal.Gui { if (dragPosition.HasValue) { if (SuperView == null) { Application.Top.SetNeedsDisplay (Frame); - Application.Top.Redraw (Bounds); + // Redraw the entire app window using just our Frame. Since we are + // Application.Top, and our Frame always == our Bounds (Location is always (0,0)) + // our Frame is actually view-relative (which is what Redraw takes). + Application.Top.Redraw (Frame); } else { SuperView.SetNeedsDisplay (Frame); }