### 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
return root_view_->IsMenuBarAutoHide();
}
void NativeWindowViews::SetMenuBarVisibility(bool visible) {
  root_view_->SetMenuBarVisibility(visible);
}
bool NativeWindowViews::IsMenuBarVisible() {
  return root_view_->IsMenuBarVisible();
}
void NativeWindowViews::SetVisibleOnAllWorkspaces(
    bool visible,
    bool visibleOnFullScreen,
    bool skipTransformProcessType) {
  widget()->SetVisibleOnAllWorkspaces(visible);
}
bool NativeWindowViews::IsVisibleOnAllWorkspaces() {
#if defined(USE_X11)
  
  
  x11::Atom sticky_atom = x11::GetAtom("_NET_WM_STATE_STICKY");
  std::vector<x11::Atom> wm_states;
  GetArrayProperty(static_cast<x11::Window>(GetAcceleratedWidget()),
                   x11::GetAtom("_NET_WM_STATE"), &wm_states);
  return std::find(wm_states.begin(), wm_states.end(), sticky_atom) !=
         wm_states.end();
#else
  return false;
#endif
}
content::DesktopMediaID NativeWindowViews::GetDesktopMediaID() const {