protected override void OnPaint(ConsoleBitmap context)
{
var toPaint = textState.CurrentValue;
var bgTransformed = new List<ConsoleCharacter>();
foreach(var c in toPaint)
{
if(c.BackgroundColor == ConsoleString.DefaultBackgroundColor && Background != ConsoleString.DefaultBackgroundColor)
{
bgTransformed.Add(new ConsoleCharacter(c.Value, Foreground, Background));
}
else
{
bgTransformed.Add(c);
}
}
context.DrawString(new ConsoleString(bgTransformed), 0, 0);
if (blinkState)
{
char blinkChar = textState.CursorPosition >= toPaint.Length ? ' ' : toPaint[textState.CursorPosition].Value;
context.Pen = new ConsoleCharacter(blinkChar, Application.Theme.FocusContrastColor, Application.Theme.FocusColor);
context.DrawPoint(textState.CursorPosition, 0);
}
}