* Electron Version: 2.0.0
* Operating System (Platform and Version): Fedora 25
* Last known working Electron version:
Didn't tested all previous versions, however the bug is already present in 1.7.8

**Expected Behavior**
I'm currently trying to figure out if a `MenuItem` was triggered through the accelerator. This is possible to achieve through the information available in the `event` object of the `click` callback.

The structure seems to be the following but isn't currently [documented](https://electronjs.org/docs/api/menu-item).

```js
{
  shiftKey: boolean;
  ctrlKey: boolean;
  altKey: boolean;
  metaKey: boolean;
}
```

When a menu item is triggered through the accelerator, the corresponding flags should normally be set to `true`.

**Actual behavior**
This seems to work fine on MacOS. However, on both Windows (10) and Linux (Fedora 25) all this flags are always `false`.

**To Reproduce**
I quickly setup a [repository](https://github.com/njakob/electron-menuitem-bug) to test the current behavior and how to reproduce it.

```sh
$ git clone https://github.com/njakob/electron-menuitem-bug
$ npm install
$ npm start
```
On Fedora 25:
```js
{ shiftKey: false, ctrlKey: false, altKey: false, metaKey: false }
```
While on MacOS:
```js
{ shiftKey: false, ctrlKey: true, altKey: false, metaKey: false }
```
atom/browser/ui/accelerator_util.cc
#include "atom/browser/ui/accelerator_util.h"
#include <stdio.h>
#include <string>
#include <vector>
#include "atom/common/keyboard_util.h"
#include "base/stl_util.h"
#include "base/strings/string_number_conversions.h"
#include "base/strings/string_split.h"
#include "base/strings/string_util.h"
namespace accelerator_util {
bool StringToAccelerator(const std::string& shortcut,
                         ui::Accelerator* accelerator) {
  if (!base::IsStringASCII(shortcut)) {
    LOG(ERROR) << "The accelerator string can only contain ASCII characters";
    return false;
  }
  std::vector<std::string> tokens = base::SplitString(
      shortcut, "+", base::TRIM_WHITESPACE, base::SPLIT_WANT_NONEMPTY);
  
  int modifiers = ui::EF_NONE;
  ui::KeyboardCode key = ui::VKEY_UNKNOWN;
  for (const auto& token : tokens) {
    bool shifted = false;
    ui::KeyboardCode code = atom::KeyboardCodeFromStr(token, &shifted);
    if (shifted)
      modifiers |= ui::EF_SHIFT_DOWN;
    switch (code) {