diff --git a/shell/browser/native_window_views.cc b/shell/browser/native_window_views.cc index b10716ba0ca5f2..906e7ed62d16d0 100644 --- a/shell/browser/native_window_views.cc +++ b/shell/browser/native_window_views.cc @@ -771,6 +771,10 @@ gfx::Size NativeWindowViews::GetContentSize() { } gfx::Rect NativeWindowViews::GetNormalBounds() { +#if BUILDFLAG(IS_WIN) + if (IsMaximized() && transparent()) + return restore_bounds_; +#endif return widget()->GetRestoredBounds(); } diff --git a/spec/api-browser-window-spec.ts b/spec/api-browser-window-spec.ts index 686d85f9590639..d7c4c769085829 100644 --- a/spec/api-browser-window-spec.ts +++ b/spec/api-browser-window-spec.ts @@ -1720,6 +1720,23 @@ describe('BrowserWindow module', () => { expect(w.isFullScreen()).to.equal(true); }); + it('checks normal bounds for maximized transparent window', async () => { + w.destroy(); + w = new BrowserWindow({ + transparent: true, + show: false + }); + w.show(); + + const bounds = w.getNormalBounds(); + + const maximize = once(w, 'maximize'); + w.maximize(); + await maximize; + + expectBoundsEqual(w.getNormalBounds(), bounds); + }); + it('does not change size for a frameless window with min size', async () => { w.destroy(); w = new BrowserWindow({