* 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
#include "atom/browser/api/atom_api_desktop_capturer.h"
using base::PlatformThreadRef;
#include "atom/common/api/atom_api_native_image.h"
#include "atom/common/native_mate_converters/gfx_converter.h"
#include "base/strings/utf_string_conversions.h"
#include "chrome/browser/media/desktop_media_list.h"
#include "native_mate/dictionary.h"
#include "third_party/webrtc/modules/desktop_capture/desktop_capture_options.h"
#include "third_party/webrtc/modules/desktop_capture/desktop_capturer.h"
#include "atom/common/node_includes.h"
namespace mate {
template<>
struct Converter<DesktopMediaList::Source> {
  static v8::Local<v8::Value> ToV8(v8::Isolate* isolate,