setCursor method

void setCursor(
  1. int cursorX,
  2. int cursorY
)

Implementation

void setCursor(int cursorX, int cursorY) {
  var maxCursorY = viewHeight - 1;

  if (terminal.originMode) {
    cursorY += _marginTop;
    maxCursorY = _marginBottom;
  }

  final minimumCursorX = switch (terminal.originMode) {
    true => _marginLeft,
    false => 0,
  };
  final maximumCursorX = switch (terminal.originMode) {
    true => _marginRight,
    false => viewWidth - 1,
  };
  if (terminal.originMode) {
    cursorX += _marginLeft;
  }

  _cursorX = cursorX.clamp(minimumCursorX, maximumCursorX);
  _cursorY = cursorY.clamp(0, maxCursorY);
}