handleMetaActions method

bool handleMetaActions(
  1. KeyEvent event
)

Implementation

bool handleMetaActions(KeyEvent event) {
  if (!(isMetaPressed || isCtrlPressed)) return false;

  final key = event.logicalKey;
  if (key == LogicalKeyboardKey.keyA) {
    handleSelectAll(document);
    return true;
  }
  if (key == LogicalKeyboardKey.keyC) {
    executeHandleCopy(document);
    return true;
  }
  if (key == LogicalKeyboardKey.keyV) {
    // Save state before paste
    document.saveState(description: 'Paste', forceNewAction: true);
    if (isShiftPressed) {
      executeHandlePastePlain(document);
    } else {
      executeHandlePaste(document);
    }
    return true;
  }
  if (key == LogicalKeyboardKey.keyX) {
    // Save state before cut
    document.saveState(description: 'Cut', forceNewAction: true);
    executeHandleCut(document);
    return true;
  }
  if (key == LogicalKeyboardKey.keyZ) {
    if (isShiftPressed) {
      // Handle redo (Ctrl+Shift+Z)
      document.redo();
      return true;
    } else {
      // Handle undo (Ctrl+Z)
      document.undo();
      return true;
    }
  }
  // Formatting shortcuts
  if (key == LogicalKeyboardKey.keyB) {
    document.saveState(description: 'Bold', forceNewAction: true);
    handleBold();
    return true;
  }
  if (key == LogicalKeyboardKey.keyI) {
    document.saveState(description: 'Italic', forceNewAction: true);
    handleItalic();
    return true;
  }
  if (key == LogicalKeyboardKey.keyU) {
    document.saveState(description: 'Underline', forceNewAction: true);
    handleUnderline();
    return true;
  }
  return false;
}