* Electron version:
1.7.0+  (it works in 1.6.15)
* Operating system:
Windows 10 x64

### Expected behavior
When passing in a screen id getUserMedia should return a stream for the corresponding screen.

### Actual behavior
When passing in a screen id getUserMedia returns a stream from a different screen, or a broken stream in some situations.

** means primary monitor

Monitor configuration and results: 
- [ 1**, 2 ] - Capturing either screen works
- [ 1, 2** ] - Capturing screen 1 returns a stream for screen 2, capturing screen 2 returns a broken stream
- [ 2, 1** ] - Capturing screen 1 works, capturing screen 2 returns a broken stream.
- [ 2**, 1 ] - capturing screen 1 returns a stream for screen 2, capturing screen 2 returns stream for screen 1.

### How to reproduce

If you provide a URL, please list the commands required to clone/setup/run your repo e.g.
```bash
git clone https://github.com/hokein/electron-screen-recorder.git
cd electron-screen-recorder
npm install
npm uninstall electron-prebuilt --save-dev
npm install electron@1.7.10 --save
./node_modules/.bin/electron .
```
Attempt one of the broken configurations above to see results.

  
atom/browser/api/atom_api_desktop_capturer.cc
const DesktopMediaList::Source& source) {
    mate::Dictionary dict(isolate, v8::Object::New(isolate));
    content::DesktopMediaID id = source.id;
    dict.Set("name", base::UTF16ToUTF8(source.name));
    dict.Set("id", id.ToString());
    dict.Set(
        "thumbnail",
        atom::api::NativeImage::Create(isolate, gfx::Image(source.thumbnail)));
    return ConvertToV8(isolate, dict);
  }
};
}  
namespace atom {
namespace api {
DesktopCapturer::DesktopCapturer(v8::Isolate* isolate) {
  Init(isolate);
}
DesktopCapturer::~DesktopCapturer() {
}
void DesktopCapturer::StartHandling(bool capture_window,