flushArea method

void flushArea(
  1. Rect area
)

Flushes the contents of a rectangular area to the terminal.

This writes spaces over the specified area at the current cursor position, using ANSI escape codes for cursor positioning.

Note: This implementation currently clears the area visually without redrawing the buffer content.

Implementation

void flushArea(Rect area) {
  for (int line = area.y; line < area.y + area.height; line++) {
    if (line >= _screenBuffer.length) break;

    if (cursorOriginalColumn != -1 && cursorOriginalLine != -1) {
      final cursorLine = isFullscreen ? line + 1 : cursorOriginalLine + line;
      final cursorColumn = isFullscreen ? 1 : cursorOriginalColumn;

      String cursorMove = '\x1B[$cursorLine;${cursorColumn}H';
      stdout.write(cursorMove);
    }

    for (int column = area.x; column < area.x + area.width; column++) {
      if (column >= _screenBuffer[0].length) break;
      stdout.write(' ');
    }
  }
}