- Electron version: All
- Operating system: OS X

Thanks @bengotow  for the y-offset, would it be possible to do a x-offset also? It may seem like an odd request but if you have a full-height sidebar menu then the sheet should be centered on the content pane. It's best understood with a screenshot (the dialog should not overlap the sidebar)...

<img width="902" alt="screen shot 2016-05-08 at 12 33 58-2" src="https://cloud.githubusercontent.com/assets/26971/15097682/39fb09ea-151b-11e6-812a-815e800b0cdf.png">

Probably would have been easier if I identified this potential issue in #4679 (sorry!).

Perhaps the best backwards compatible way to introduce this functionality is to keep the existing API but also accept an object with `x` and `y` values:

``` js
var toolbarRect = document.getElementById('toolbar').getBoundingClientRect();
var sidebarRect = document.getElementById('sidebar').getBoundingClientRect();

win.setSheetOffset({
  x: sidebarRect.width / 2,
  y: toolbarRect.height
});
```

I'm happy to have a go implementing this myself but I haven't hacked on the codebase before and since @bengotow implemented the original feature then perhaps he is better placed to add this functionality?

atom/browser/native_window.h
virtual bool IsFullscreen() const = 0;
  virtual void SetBounds(const gfx::Rect& bounds, bool animate = false) = 0;
  virtual gfx::Rect GetBounds() = 0;
  virtual void SetSize(const gfx::Size& size, bool animate = false);
  virtual gfx::Size GetSize();
  virtual void SetPosition(const gfx::Point& position, bool animate = false);
  virtual gfx::Point GetPosition();
  virtual void SetContentSize(const gfx::Size& size, bool animate = false);
  virtual gfx::Size GetContentSize();
  virtual void SetSizeConstraints(
      const extensions::SizeConstraints& size_constraints);
  virtual extensions::SizeConstraints GetSizeConstraints();
  virtual void SetContentSizeConstraints(
      const extensions::SizeConstraints& size_constraints);
  virtual extensions::SizeConstraints GetContentSizeConstraints();
  virtual void SetMinimumSize(const gfx::Size& size);
  virtual gfx::Size GetMinimumSize();
  virtual void SetMaximumSize(const gfx::Size& size);
  virtual gfx::Size GetMaximumSize();
  virtual void SetSheetOffset(const double offset);
  virtual double GetSheetOffset();
  virtual void SetResizable(bool resizable) = 0;
  virtual bool IsResizable() = 0;
  virtual void SetMovable(bool movable) = 0;
  virtual bool IsMovable() = 0;
  virtual void SetMinimizable(bool minimizable) = 0;
  virtual bool IsMinimizable() = 0;
  virtual void SetMaximizable(bool maximizable) = 0;
  virtual bool IsMaximizable() = 0;
  virtual void SetFullScreenable(bool fullscreenable) = 0;