handleKey method

KeyEventResult handleKey(
  1. FocusNode node,
  2. KeyEvent event
)

Implementation

KeyEventResult handleKey(FocusNode node, KeyEvent event) {
  if (event is! KeyDownEvent && event is! KeyRepeatEvent) {
    return KeyEventResult.ignored;
  }
  final k = event.logicalKey;
  if (k == LogicalKeyboardKey.arrowDown) {
    _moveHighlight(1);
    return KeyEventResult.handled;
  }
  if (k == LogicalKeyboardKey.arrowUp) {
    _moveHighlight(-1);
    return KeyEventResult.handled;
  }
  if (k == LogicalKeyboardKey.enter || k == LogicalKeyboardKey.numpadEnter) {
    if (_highlightedIndex >= 0 && _highlightedIndex < items.length) {
      _selectItem(items[_highlightedIndex]);
    }
    return KeyEventResult.handled;
  }
  if (k == LogicalKeyboardKey.escape) {
    closeOverlay();
    return KeyEventResult.handled;
  }
  return KeyEventResult.ignored;
}