Thanks for the great work you do on Electron. 🙏We love using Electron.

I'm setting up a MenuItem with an "accelerators" (keyboard shortcuts). I'm specifying the [`click` option](https://electronjs.org/docs/api/menu-item#new-menuitemoptions) to provide custom handling. In my analytics, I'd like to report the method the user used to trigger the MenuItem—mouse click or keyboard shortcut.

The `click` function I provide is called with these arguments: `(menuItem, browserWindow, event)`. The value of `event` is `{ shiftKey: false, ctrlKey: false, altKey: false, metaKey: false }`. For accelerators that happen to include one of the keys in `event`, I'm able to derive that the user hit the keyboard shortcut (i.e. if the user hits the keyboard shortcut for `Command-C`, `event` will contain `metaKey: true`.

But some of my keyboard shortcuts are: `Up`, `Down`, `Enter`. If the user hits these keyboard shortcuts, I have no way to differentiate whether the user clicked the menu item with the mouse or hit the keyboard shortcut.

Is there a reliable way to differentiate mouse clicks vs. keyboard shortcut hits in a MenuItem?
atom/browser/api/event_emitter.cc
mate::Dictionary self(args->isolate(), args->GetThis());
  self.Set("defaultPrevented", true);
}
v8::Local<v8::Object> CreateEventObject(v8::Isolate* isolate) {
  if (event_template.IsEmpty()) {
    event_template.Reset(
        isolate,
        ObjectTemplateBuilder(isolate, v8::ObjectTemplate::New(isolate))
            .SetMethod("preventDefault", &PreventDefault)
            .Build());
  }
  return v8::Local<v8::ObjectTemplate>::New(isolate, event_template)
      ->NewInstance(isolate->GetCurrentContext())
      .ToLocalChecked();
}
}  
namespace internal {
v8::Local<v8::Object> CreateJSEvent(v8::Isolate* isolate,