e.g.

```js
// in the main process
const w = new BrowserWindow({ show: false })
const menu = Menu.buildFromTemplate([
  { label: '1' },
  { label: '2' },
  { label: '3' }
])
menu.popup()
menu.closePopup()
```

It works if you call `closePopup()` in a `setTimeout` callback, though.

Expected behaviour:
menu appears and then disappears.

Actual behaviour:
menu appears and never goes away.

See [fiddle](https://gist.github.com/b76d0930011603e320f06f6ca0788317).

Happens on Electron 4, 5 and 6.
shell/browser/api/atom_api_menu_mac.h
#ifndef SHELL_BROWSER_API_ATOM_API_MENU_MAC_H_
#define SHELL_BROWSER_API_ATOM_API_MENU_MAC_H_
#include "shell/browser/api/atom_api_menu.h"
#include <map>
#include <string>
#import "shell/browser/ui/cocoa/atom_menu_controller.h"
using base::scoped_nsobject;
namespace electron {
namespace api {
class MenuMac : public Menu {