hotkeys.dart 1.1 KB

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