public void EndUpdate(Control control) { if (updating) { ConsoleRenderer.ActiveBuffer.Clear(oldRectangle); foreach (var ctrl in controls) { if (ctrl != control && ctrl.IntersectsWith(oldRectangle)) { ctrl.Draw(ctrl.Rectangle.Intersect(oldRectangle)); } } control.Draw(); int index = controls.IndexOf(control); for (int i = index + 1; i < controls.Count; i++) { var ctrl = controls[i]; if (ctrl.IntersectsWith(control.Rectangle)) { ctrl.Draw(ctrl.Rectangle.Intersect(control.Rectangle)); } } ConsoleRenderer.RenderArea(oldRectangle); ConsoleRenderer.RenderArea(control.Rectangle); updating = false; } }