- Electron version: 1.4.1
- Operating system: Mac with retina display

Step to reproduce:
1. create a frameless window on a retina device
2. put an element at the very top, say a div, and set the cursor type to pointer
3. observe that the cursor does not always change to a 'pointer' type

I have a video here for demo purpose: https://youtu.be/yFZayteopgg

The video demonstrated the issue on Mac, but it's also reproducible on Windows, and on Windows it's worse because not only the cursor type does not change, the click event won't register either. Thus it's impossible to correctly implement close/maximize/minimize buttons with CSS.

Notice it's only reproducible on hi dpi devices, everything seems to work correctly on regular displays.

the demo in the video is made by adapting the frameless window example in the electron api demo app.

atom/browser/native_window_mac.h
void SetResizable(bool resizable) override;
  bool IsResizable() override;
  void SetMovable(bool movable) override;
  void SetAspectRatio(double aspect_ratio, const gfx::Size& extra_size)
    override;
  void PreviewFile(const std::string& path, const std::string& display_name)
    override;
  void CloseFilePreview() override;
  bool IsMovable() override;
  void SetMinimizable(bool minimizable) override;
  bool IsMinimizable() override;
  void SetMaximizable(bool maximizable) override;
  bool IsMaximizable() override;
  void SetFullScreenable(bool fullscreenable) override;
  bool IsFullScreenable() override;
  void SetClosable(bool closable) override;
  bool IsClosable() override;
  void SetAlwaysOnTop(bool top, const std::string& level,
                      int relativeLevel, std::string* error) override;
  bool IsAlwaysOnTop() override;
  void Center() override;
  void Invalidate() override;
  void SetTitle(const std::string& title) override;
  std::string GetTitle() override;
  void FlashFrame(bool flash) override;
  void SetSkipTaskbar(bool skip) override;
  void SetKiosk(bool kiosk) override;
  bool IsKiosk() override;
  void SetBackgroundColor(const std::string& color_name) override;
  void SetHasShadow(bool has_shadow) override;