handleKeyEvent method

void handleKeyEvent(
  1. KeyEvent event
)

Handles a keyboard event and routes it to the focused layer.

Implementation

void handleKeyEvent(KeyEvent event) {
  Tracer.record(
    _traceKeyEventId,
    Phase.begin,
    TraceCategory.events,
    metadata: {'key': event.logicalKey},
  );
  try {
    if (debugToggleKey != null && event == debugToggleKey) {
      debugShowTouchesEnabled = !debugShowTouchesEnabled;
      debugPaintHoverEnabled = !debugPaintHoverEnabled;
      debugMouseCursorEnabled = !debugMouseCursorEnabled;
      debugPaintLayerBordersEnabled = !debugPaintLayerBordersEnabled;
      scheduleRender();
      return;
    }

    if (onKeyEvent?.call(event) ?? false) {
      return;
    }

    final handled = focusedLayer?.renderer.handleKeyEvent(event) ?? false;
    if (!handled) {
      _clearHoverState();
    }
  } finally {
    Tracer.record(_traceKeyEventId, Phase.end, TraceCategory.events);
  }
}