* [x] I have read the [Contributing Guidelines](https://github.com/electron/electron/blob/master/CONTRIBUTING.md) for this project.
* [x] I agree to follow the [Code of Conduct](https://github.com/electron/electron/blob/master/CODE_OF_CONDUCT.md) that this project adheres to.
* [x] I have searched the issue tracker for an issue that matches the one I want to file, without success.

### Issue Details

* **Electron Version:**
  * `6.0.2`
* **Operating System:**
  * Windows 10 (1903)
* **Last Known Working Electron version:**
  * `5.0.7`

### Expected Behavior
1. App is not maximized 
2. click minimize 
3. click on taskbar icon
4. **app restores to original size**

### Actual Behavior
1. App is not maximized 
2. click minimize 
3. click on taskbar icon
4. **screen flickers as the app returns from _minimum allowed window size_ to the original (not maximized) size.**

### To Reproduce
I logged the behavior:
```ts
  win.on('minimize', (e) => {
    console.log('minimizing');
    const bounds: any = win.getBounds();
    console.log(bounds);
  });

  win.on('restore', (e) => {
    console.log('restoring');
    const bounds: any = win.getBounds();
    console.log(bounds);
  });
```

Result:
```
minimizing
{ x: 100, y: 200, width: 1400, height: 800 }
restoring
{ x: 100, y: 200, width: 420, height: 250 }
```

The dimensions come from 
```ts
  win = new BrowserWindow({
    ...
    minWidth: 420,
    minHeight: 250,
    frame: false // this line might be relevant for the current issue
```

I have the problem happening in my app, in `master` - tracking with https://github.com/whyboris/Video-Hub-App/issues/260

Can be reproduced by cloning the repository, running `npm install`, having _Angular CLI_ installed (`npm i -g @angular/cli`), and running the app `npm start`. Needless to say the error occurs in the built version of the app (`npm run electron:windows`).

_Note:_ the error does _not_ occur when the window is _maximized_, minimized, and restored.

Error might not occur on Mac -- can't be sure because the Mac has a stupid minimize/maximize animation 🤷‍♂ 

Thank you _Electron Team_ for your amazing work 🙇 my app would be impossible without you ❤️ 

### Possibly related tickets:
https://github.com/electron/electron/issues/19423
https://github.com/electron/electron/issues/13043
https://github.com/electron/electron/issues/16900

### Possible solution:
https://github.com/electron/electron/issues/19423#issuecomment-521621266
shell/browser/native_window_views_win.cc
if (forward && !forwarding_mouse_messages_) {
    forwarding_mouse_messages_ = true;
    forwarding_windows_.insert(this);
    
    
    SetWindowSubclass(legacy_window_, SubclassProc, 1,
                      reinterpret_cast<DWORD_PTR>(this));
    if (!mouse_hook_) {
      mouse_hook_ = SetWindowsHookEx(WH_MOUSE_LL, MouseHookProc, NULL, 0);
    }
  } else if (!forward && forwarding_mouse_messages_) {
    forwarding_mouse_messages_ = false;
    forwarding_windows_.erase(this);
    RemoveWindowSubclass(legacy_window_, SubclassProc, 1);
    if (forwarding_windows_.size() == 0) {
      UnhookWindowsHookEx(mouse_hook_);
      mouse_hook_ = NULL;
    }
  }
}
LRESULT CALLBACK NativeWindowViews::SubclassProc(HWND hwnd,