handle method
Implementation
void handle(dynamic event, FluentDocument document) {
if (event is KeyEvent) {
if (event is KeyDownEvent) {
updateModifiers(event);
}
if (event is KeyUpEvent) {
updateModifiers(event);
if (_arrowRepeater.isActive && _arrowRepeater.isArrowKey(event.logicalKey)) {
_arrowRepeater.stop();
}
}
if (event is KeyRepeatEvent) {
updateModifiers(event);
// On Linux, arrow key native autorepeat is ignored: repetition is
// driven manually by ArrowKeyRepeater instead, to work around
// missing repaint during OS-level key autorepeat.
if (_arrowRepeater.isActive && _arrowRepeater.isArrowKey(event.logicalKey)) {
return;
}
}
if (event is KeyDownEvent || event is KeyRepeatEvent) {
handleKeyDown(event, document);
}
if (event is KeyDownEvent &&
_arrowRepeater.isActive &&
_arrowRepeater.isArrowKey(event.logicalKey)) {
this.document = document;
_arrowRepeater.start(event, fast: isShiftPressed);
}
}
}