Browse Source

Fixes #2416. Single smaller top level leaves chunk trails on move.

BDisp 2 years ago
parent
commit
8f7fc8129b
1 changed files with 8 additions and 0 deletions
  1. 8 0
      Terminal.Gui/Core/Application.cs

+ 8 - 0
Terminal.Gui/Core/Application.cs

@@ -1241,6 +1241,14 @@ namespace Terminal.Gui {
 				}
 				}
 				state.Toplevel.SetNeedsDisplay (state.Toplevel.Bounds);
 				state.Toplevel.SetNeedsDisplay (state.Toplevel.Bounds);
 			}
 			}
+			if (toplevels.Count == 1 && state.Toplevel == Top
+				&& (Driver.Cols != state.Toplevel.Frame.Width || Driver.Rows != state.Toplevel.Frame.Height)
+				&& (!state.Toplevel.NeedDisplay.IsEmpty || state.Toplevel.ChildNeedsDisplay || state.Toplevel.LayoutNeeded)) {
+
+				Driver.SetAttribute (Colors.TopLevel.Normal);
+				state.Toplevel.Clear (new Rect (0, 0, Driver.Cols, Driver.Rows));
+
+			}
 			if (!state.Toplevel.NeedDisplay.IsEmpty || state.Toplevel.ChildNeedsDisplay || state.Toplevel.LayoutNeeded
 			if (!state.Toplevel.NeedDisplay.IsEmpty || state.Toplevel.ChildNeedsDisplay || state.Toplevel.LayoutNeeded
 				|| MdiChildNeedsDisplay ()) {
 				|| MdiChildNeedsDisplay ()) {
 				state.Toplevel.Redraw (state.Toplevel.Bounds);
 				state.Toplevel.Redraw (state.Toplevel.Bounds);