LogicalKeyboardKey.meta 在不按下 LogicalKeySet 中的其他键的情况下触发快捷方式

LogicalKeyboardKey.meta in shortcut is triggered without pressing the other keys in the LogicalKeySet

我一直在使用 ShortcutsActions 和 Flutter web 键绑定。而且我发现了一个我找不到解决办法的奇怪行为。

问题是,我已经为一组动作定义了一系列 LogicalKeySet。我为每个动作创建 2 个,一个用于 windows,一个用于 mac。它们看起来像这样:

final boldKeySetWindows = LogicalKeySet(LogicalKeyboardKey.control, LogicalKeyboardKey.keyB);
final boldKeySetMac = LogicalKeySet(LogicalKeyboardKey.control, LogicalKeyboardKey.keyB);

我按照指定将它们添加到操作小部件中 here

final boldKeySetWindows = LogicalKeySet(LogicalKeyboardKey.control, LogicalKeyboardKey.keyB);
final boldKeySetMac = LogicalKeySet(LogicalKeyboardKey.control, LogicalKeyboardKey.keyB);

Shortcuts(
  shortcuts: {
    boldKeySetWindows: MEFormatIntent(boldFormatter),
    boldKeySetMac: MEFormatIntent(boldFormatter),
  },
  child: Actions(
    dispatcher: MEFormatActionDispatcher(),
    actions: <Type, Action<Intent>>{
      MEFormatIntent: MEFormatAction(_controller),
    },
  )
);

问题或奇怪的行为如下,对于windows(使用控件)它工作正常,它只在ctrlb都执行时执行MEFormatAction按下。

但是如果我尝试使用 meta 键或 键加上 b 它在您第一次按 cmd+b 时可以正常工作,但在那之后,如果我再次快速按下cmd,它会再次执行MEFormatAction。 (ctrl 不会发生此行为)

我是不是遗漏了什么,或者这是一个错误?

我没有尝试任何事情,因为我未能成功找到有关此行为的信息,非常感谢任何帮助或建议!

这是一个已知的 issue/behaviour,似乎是 MacOS 的问题,可以找到更多信息 here and here

但解决方案是使用 SingleActivator 而不是 LogicalKeySet