mirror of
https://github.com/electron/electron.git
synced 2026-04-10 03:01:51 -04:00
fix: isMaximized after minimize/fullscreen on macOS (#38307)
fix: isMaximized after isMinimized on macOS Co-authored-by: trop[bot] <37223003+trop[bot]@users.noreply.github.com> Co-authored-by: Shelley Vohr <shelley.vohr@gmail.com>
This commit is contained in:
@@ -562,6 +562,11 @@ void NativeWindowMac::Unmaximize() {
|
||||
}
|
||||
|
||||
bool NativeWindowMac::IsMaximized() {
|
||||
// It's possible for [window_ isZoomed] to be true
|
||||
// when the window is minimized or fullscreened.
|
||||
if (IsMinimized() || IsFullscreen())
|
||||
return false;
|
||||
|
||||
if (HasStyleMask(NSWindowStyleMaskResizable) != 0)
|
||||
return [window_ isZoomed];
|
||||
|
||||
|
||||
@@ -1665,6 +1665,42 @@ describe('BrowserWindow module', () => {
|
||||
expectBoundsEqual(w.getNormalBounds(), bounds);
|
||||
});
|
||||
|
||||
it('correctly reports maximized state after maximizing then minimizing', async () => {
|
||||
w.destroy();
|
||||
w = new BrowserWindow({ show: false });
|
||||
|
||||
w.show();
|
||||
|
||||
const maximize = once(w, 'maximize');
|
||||
w.maximize();
|
||||
await maximize;
|
||||
|
||||
const minimize = once(w, 'minimize');
|
||||
w.minimize();
|
||||
await minimize;
|
||||
|
||||
expect(w.isMaximized()).to.equal(false);
|
||||
expect(w.isMinimized()).to.equal(true);
|
||||
});
|
||||
|
||||
it('correctly reports maximized state after maximizing then fullscreening', async () => {
|
||||
w.destroy();
|
||||
w = new BrowserWindow({ show: false });
|
||||
|
||||
w.show();
|
||||
|
||||
const maximize = once(w, 'maximize');
|
||||
w.maximize();
|
||||
await maximize;
|
||||
|
||||
const enterFS = once(w, 'enter-full-screen');
|
||||
w.setFullScreen(true);
|
||||
await enterFS;
|
||||
|
||||
expect(w.isMaximized()).to.equal(false);
|
||||
expect(w.isFullScreen()).to.equal(true);
|
||||
});
|
||||
|
||||
it('does not change size for a frameless window with min size', async () => {
|
||||
w.destroy();
|
||||
w = new BrowserWindow({
|
||||
|
||||
Reference in New Issue
Block a user