* Electron Version: latest
* Operating System (Platform and Version): mac
* Last known working Electron version: n/a

**Expected Behavior**
When the tray icon menu is popped up manually (but on a tray click event callback), I expect the menu to open up but not necessarily block the main process.

**Actual behavior**
It blocks the main process until the menu is closed. This is creating issues with other timers etc that I have running on the main process.



shell/browser/api/atom_api_menu.h
int GetIndexOfCommandId(int command_id);
  int GetItemCount() const;
  int GetCommandIdAt(int index) const;
  base::string16 GetLabelAt(int index) const;
  base::string16 GetSublabelAt(int index) const;
  base::string16 GetAcceleratorTextAt(int index) const;
  bool IsItemCheckedAt(int index) const;
  bool IsEnabledAt(int index) const;
  bool IsVisibleAt(int index) const;
  bool WorksWhenHiddenAt(int index) const;
  
  base::RepeatingCallback<bool(v8::Local<v8::Value>, int)> is_checked_;
  base::RepeatingCallback<bool(v8::Local<v8::Value>, int)> is_enabled_;
  base::RepeatingCallback<bool(v8::Local<v8::Value>, int)> is_visible_;
  base::RepeatingCallback<bool(v8::Local<v8::Value>, int)> works_when_hidden_;
  base::RepeatingCallback<v8::Local<v8::Value>(v8::Local<v8::Value>, int, bool)>
      get_accelerator_;
  base::RepeatingCallback<bool(v8::Local<v8::Value>, int)>
      should_register_accelerator_;
  base::RepeatingCallback<void(v8::Local<v8::Value>, v8::Local<v8::Value>, int)>
      execute_command_;
  base::RepeatingCallback<void(v8::Local<v8::Value>)> menu_will_show_;
  DISALLOW_COPY_AND_ASSIGN(Menu);
};
}  
}  
namespace mate {
template <>
struct Converter<electron::AtomMenuModel*> {
  static bool FromV8(v8::Isolate* isolate,