- Electron version: 1.4.1
- Operating system: Windows 7 and 10

If you drag the window to the top edge to maximize it, and then call `restore()` or `unmaximize()` the window will move to the top, where the maximization happened, usually slightly out of view. 
With the regular Windows restore button it moves back to place before the drag started.

I'd really like to use a frameless window with my own window controls, but this problem comes out pretty often.

atom/browser/native_window_views.h
#if defined(OS_WIN)
  TaskbarHost& taskbar_host() { return taskbar_host_; }
#endif
 private:
  
  void OnWidgetActivationChanged(
      views::Widget* widget, bool active) override;
  void OnWidgetBoundsChanged(
      views::Widget* widget, const gfx::Rect& bounds) override;
  
  void DeleteDelegate() override;
  views::View* GetInitiallyFocusedView() override;
  bool CanResize() const override;
  bool CanMaximize() const override;
  bool CanMinimize() const override;
  base::string16 GetWindowTitle() const override;
  bool ShouldHandleSystemCommands() const override;
  views::Widget* GetWidget() override;
  const views::Widget* GetWidget() const override;
  views::View* GetContentsView() override;
  bool ShouldDescendIntoChildForEventHandling(
     gfx::NativeView child,
     const gfx::Point& location) override;
  views::ClientView* CreateClientView(views::Widget* widget) override;