keyboard.dart 1.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445
  1. import '../render/selectable.dart';
  2. import 'editor_state.dart';
  3. import 'package:flutter/services.dart';
  4. import 'package:flutter/material.dart';
  5. class Keyboard extends StatelessWidget {
  6. final Widget child;
  7. final focusNode = FocusNode();
  8. final EditorState editorState;
  9. Keyboard({
  10. Key? key,
  11. required this.child,
  12. required this.editorState,
  13. }) : super(key: key);
  14. @override
  15. Widget build(BuildContext context) {
  16. return Focus(
  17. focusNode: focusNode,
  18. autofocus: true,
  19. onKey: _onKey,
  20. child: child,
  21. );
  22. }
  23. KeyEventResult _onKey(FocusNode node, RawKeyEvent event) {
  24. // if (event is! RawKeyDownEvent) {
  25. // return KeyEventResult.ignored;
  26. // }
  27. // List<KeyEventResult> result = [];
  28. // for (final node in editorState.selectedNodes) {
  29. // if (node.key != null &&
  30. // node.key?.currentState is KeyboardEventsRespondable) {
  31. // final respondable = node.key!.currentState as KeyboardEventsRespondable;
  32. // result.add(respondable.onKeyDown(event));
  33. // }
  34. // }
  35. // if (result.contains(KeyEventResult.handled)) {
  36. // return KeyEventResult.handled;
  37. // }
  38. return KeyEventResult.ignored;
  39. }
  40. }