### Preflight Checklist
* [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:**
  * 7.1.2 - 9.0.0-beta.3 (and presumably later versions until this bug is fixed)
* **Operating System:**
  * Windows 10 pro (1909)
* **Last Known Working Electron version:**
  * 7.1.1

### Preconditions

* Window is frameless
* Window has minimum size
* Window size is minimum size

### Expected behavior

* Window is maximized
* Window is unmaximized
* Window has the same size as before the maximization

### Actual Behavior
* Window is maximized
* Window is unmaximized
* Window is slightly higher and wider than before the maximization

### To Reproduce

```
git clone -b frameless-minsize-maximize-unmaximize-bug https://github.com/christian-judt/electron-quick-start.git
cd electron-quick-start
npm install
npm start
```

### Additional Information

* This seems to be a reappearing problem. (for the last occurence see #13533)
* A similar problem with "minimize-restore" instead of "maximize-unmaximize" has appeared in Electron Version 7.1.10. (see #22393)

### Other maybe related issues

* [Windows] Frameless window size increase on a maximize, unmaximize sequence #2498
* Windows: Restore (after minimize) to wrong window size #7951
* maximize, minimize, restore incorrect size #15702
* Electron 6 - restore after minimize has wrong window size #19816
shell/browser/native_window_views_win.cc
WPARAM w_param,
                                                  LPARAM l_param) {
  if (n_code < 0) {
    return CallNextHookEx(NULL, n_code, w_param, l_param);
  }
  
  
  
  if (w_param == WM_MOUSEMOVE) {
    for (auto* window : forwarding_windows_) {
      
      
      
      
      RECT client_rect;
      GetClientRect(window->legacy_window_, &client_rect);
      POINT p = reinterpret_cast<MSLLHOOKSTRUCT*>(l_param)->pt;
      ScreenToClient(window->legacy_window_, &p);
      if (PtInRect(&client_rect, p)) {
        WPARAM w = 0;  
        LPARAM l = MAKELPARAM(p.x, p.y);
        PostMessage(window->legacy_window_, WM_MOUSEMOVE, w, l);
      }
    }
  }
  return CallNextHookEx(NULL, n_code, w_param, l_param);
}
}