hotkeys.dart 903 B

123456789101112131415161718192021222324252627282930
  1. import 'dart:io';
  2. import 'package:appflowy/workspace/application/home/home_setting_bloc.dart';
  3. import 'package:flutter/material.dart';
  4. import 'package:hotkey_manager/hotkey_manager.dart';
  5. import 'package:provider/provider.dart';
  6. class HomeHotKeys extends StatelessWidget {
  7. final Widget child;
  8. const HomeHotKeys({required this.child, Key? key}) : super(key: key);
  9. @override
  10. Widget build(BuildContext context) {
  11. HotKey hotKey = HotKey(
  12. KeyCode.backslash,
  13. modifiers: [Platform.isMacOS ? KeyModifier.meta : KeyModifier.control],
  14. // Set hotkey scope (default is HotKeyScope.system)
  15. scope: HotKeyScope.inapp, // Set as inapp-wide hotkey.
  16. );
  17. hotKeyManager.register(
  18. hotKey,
  19. keyDownHandler: (hotKey) {
  20. context
  21. .read<HomeSettingBloc>()
  22. .add(const HomeSettingEvent.collapseMenu());
  23. },
  24. );
  25. return child;
  26. }
  27. }