- 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.cc
UINT message, WPARAM w_param, LPARAM l_param) {
  FOR_EACH_OBSERVER(NativeWindowObserver, observers_,
                    OnWindowMessage(message, w_param, l_param));
}
#endif
scoped_ptr<SkRegion> NativeWindow::DraggableRegionsToSkRegion(
    const std::vector<DraggableRegion>& regions) {
  scoped_ptr<SkRegion> sk_region(new SkRegion);
  for (const DraggableRegion& region : regions) {
    sk_region->op(
        region.bounds.x(),
        region.bounds.y(),
        region.bounds.right(),
        region.bounds.bottom(),
        region.draggable ? SkRegion::kUnion_Op : SkRegion::kDifference_Op);
  }
  return sk_region;
}
void NativeWindow::RenderViewCreated(
    content::RenderViewHost* render_view_host) {
  if (!transparent_)
    return;
  content::RenderWidgetHostImpl* impl = content::RenderWidgetHostImpl::FromID(
      render_view_host->GetProcess()->GetID(),
      render_view_host->GetRoutingID());
  if (impl)
    impl->SetBackgroundOpaque(false);
}
void NativeWindow::BeforeUnloadDialogCancelled() {