- 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
bool HasShadow() override;
  void SetRepresentedFilename(const std::string& filename) override;
  std::string GetRepresentedFilename() override;
  void SetDocumentEdited(bool edited) override;
  bool IsDocumentEdited() override;
  void SetIgnoreMouseEvents(bool ignore) override;
  void SetContentProtection(bool enable) override;
  void SetBrowserView(NativeBrowserView* browser_view) override;
  void SetParentWindow(NativeWindow* parent) override;
  gfx::NativeView GetNativeView() const override;
  gfx::NativeWindow GetNativeWindow() const override;
  gfx::AcceleratedWidget GetAcceleratedWidget() const override;
  void SetProgressBar(double progress, const ProgressState state) override;
  void SetOverlayIcon(const gfx::Image& overlay,
                      const std::string& description) override;
  void SetVisibleOnAllWorkspaces(bool visible) override;
  bool IsVisibleOnAllWorkspaces() override;
  void SetAutoHideCursor(bool auto_hide) override;
  void SetVibrancy(const std::string& type) override;
  void SetTouchBar(
      const std::vector<mate::PersistentDictionary>& items) override;
  void RefreshTouchBarItem(const std::string& item_id) override;
  void SetEscapeTouchBarItem(const mate::PersistentDictionary& item) override;
  
  void OnInputEvent(const blink::WebInputEvent& event) override;
  
  void RenderViewHostChanged(content::RenderViewHost* old_host,
                             content::RenderViewHost* new_host) override;
  
  void UpdateDraggableRegionViews() {