handleCharacterInput method

bool handleCharacterInput(
  1. KeyEvent event
)

Implementation

bool handleCharacterInput(KeyEvent event) {
  if (document.imeHandler.isConnectionActive) {
    // Let the OS send a TextEditingDelta. Manual insertion kills the OS IME composing session.
    return false;
  }

  if (event.character != null && event.character!.isNotEmpty) {
    if (document.imeHandler.isComposing) {
      return false;
    }
    final character = event.character!;
    final isSpace = character == ' ' || character == '\n' || character == '\r';

    document.saveState(
      description: 'Type',
      forceNewAction: isSpace,
    );

    if (document.cursor.isCollapsed) {
      executeHandleInsertCharacter(character, document);
    } else {
      executeHandleReplaceSelection(character, document);
    }
    return true;
  }
  return false;
}