handleMetaActions method
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;
}