### Preflight Checklist

- [X] I have read the [Contributing Guidelines](https://github.com/electron/electron/blob/main/CONTRIBUTING.md) for this project.
- [X] I agree to follow the [Code of Conduct](https://github.com/electron/electron/blob/main/CODE_OF_CONDUCT.md) that this project adheres to.
- [X] I have searched the [issue tracker](https://www.github.com/electron/electron/issues) for a bug report that matches the one I want to file, without success.

### Electron Version

17.0.0-alpha.6

### What operating system are you using?

Windows

### Operating System Version

Windows 10

### What arch are you using?

x64

### Last Known Working Electron version

_No response_

### Expected Behavior

`BrowserWindow.unmaximize` should not restore a minimized window

### Actual Behavior

`BrowserWindow.unmaximize` does restore a minimized window

### Testcase Gist URL

https://gist.github.com/eb364ab237b856b11c9570fa2b257cfb

### Additional Information

The provided gist is a test so it should be runnable by `bugbot`. I've confirmed the behavior on Windows, macOS seems unaffected, I haven't tested Linux.

Root cause might be [that `NativeWindowViews::Unmaximize` calls `widget()->Restore()`](https://github.com/electron/electron/blob/bd10b19b0cdc46cdbadb570af89305e64541b679/shell/browser/native_window_views.cc#L591), so it does the restore behavior, regardless of if the window is maximized or minimized. It should probably do an `IsMaximized()` check before calling `Restore()` to prevent this issue. Could also use some more test coverage to ensure `unmaximize` is a no-op when the window isn't maximized.
shell/browser/native_window_views.cc
const gfx::Rect& bounds) {
  if (changed_widget != widget())
    return;
  
  
  const auto new_bounds = GetBounds();
  if (widget_size_ != new_bounds.size()) {
    int width_delta = new_bounds.width() - widget_size_.width();
    int height_delta = new_bounds.height() - widget_size_.height();
    for (NativeBrowserView* item : browser_views()) {
      auto* native_view = static_cast<NativeBrowserViewViews*>(item);
      native_view->SetAutoResizeProportions(widget_size_);
      native_view->AutoResize(new_bounds, width_delta, height_delta);
    }
    NotifyWindowResize();
    widget_size_ = new_bounds.size();
  }
}
void NativeWindowViews::OnWidgetDestroying(views::Widget* widget) {