editableEscapeUnfocus static method

Map<ShortcutActivator, VoidCallback> editableEscapeUnfocus(
  1. FocusNode focusNode
)

Escape unfocuses focusNode when it has primary focus.

Does not clear keyboard-ring modality — the next Tab still shows rings. Overlay dismiss shortcuts (menus/dropdowns) should wrap above the field so Escape closes the overlay first.

Implementation

static Map<ShortcutActivator, VoidCallback> editableEscapeUnfocus(
  FocusNode focusNode,
) {
  return <ShortcutActivator, VoidCallback>{
    const SingleActivator(LogicalKeyboardKey.escape): () {
      if (focusNode.hasPrimaryFocus) {
        focusNode.unfocus();
      }
    },
  };
}