#51252: fix: ensure stable bounds on Windows when toggling setResizable for frameless windows
Merged
Description of Change
Fixes #51244.
Refs #50706.
Thick frame frameless windows now get input insets even if they aren't resizable, preventing their size from changing after calls to setResizability().
This additionally is more consistent with how native apps behave: e.g. run charmap.exe and drag it over a text document. The text cursor changes to the pointer before you reach the edge of the frame, and the window will be focused if you click in that area, even though it can't be resized by dragging.
Checklist
- I have built and tested this change
- I have filled out the PR description
- I have reviewed and verified the changes
-
npm testpasses - tests are changed or added
- relevant API documentation, tutorials, and examples are updated and follow the documentation style guide
- PR release notes describe the change in a way relevant to app developers, and are capitalized, punctuated, and past tense.
Release Notes
Notes: Fixed a regression on Windows where frameless windows changed their size after calling setResizable.
Backports
41-x-y
MergedPR Number
#51427Merged At
May 1, 2026, 4:06:41 PM
Released In
v41.5.0Release Date
May 1, 2026, 6:39:21 PM
42-x-y
MergedPR Number
#51296Merged At
Apr 23, 2026, 9:31:48 PM
Released In
v42.0.0-beta.7Release Date
Apr 29, 2026, 3:06:55 PM
Semver Impact
Major
Breaking changes
Minor
New features
Patch
Bug fixes
None
Docs, tests, etc.
Semantic Versioning helps users understand the impact of updates:
- Major (X.y.z): Breaking changes that may require code modifications
- Minor (x.Y.z): New features that maintain backward compatibility
- Patch (x.y.Z): Bug fixes that don't change the API
- None: Changes that don't affect using facing parts of Electron