Skip to content

Commit

Permalink
fix: fullscreen crashing with roundedCorners: false (#35455)
Browse files Browse the repository at this point in the history
fix: fullscreen crashing with roundedCorners

Co-authored-by: Shelley Vohr <shelley.vohr@gmail.com>
  • Loading branch information
trop[bot] and codebytere committed Aug 25, 2022
1 parent 42e2e54 commit dad125a
Show file tree
Hide file tree
Showing 3 changed files with 11 additions and 2 deletions.
3 changes: 2 additions & 1 deletion docs/api/browser-window.md
Expand Up @@ -246,7 +246,8 @@ It creates a new `BrowserWindow` with native properties as set by the `options`.
* `trafficLightPosition` [Point](structures/point.md) (optional) _macOS_ -
Set a custom position for the traffic light buttons in frameless windows.
* `roundedCorners` boolean (optional) _macOS_ - Whether frameless window
should have rounded corners on macOS. Default is `true`.
should have rounded corners on macOS. Default is `true`. Setting this property
to `false` will prevent the window from being fullscreenable.
* `fullscreenWindowTitle` boolean (optional) _macOS_ _Deprecated_ - Shows
the title in the title bar in full screen mode on macOS for `hiddenInset`
titleBarStyle. Default is `false`.
Expand Down
5 changes: 4 additions & 1 deletion shell/browser/native_window_mac.mm
Expand Up @@ -299,7 +299,7 @@ void ViewDidMoveToSuperview(NSView* self, SEL _cmd) {
bool rounded_corner = true;
options.Get(options::kRoundedCorners, &rounded_corner);
if (!rounded_corner && !has_frame())
styleMask = 0;
styleMask = NSWindowStyleMaskBorderless;

if (minimizable)
styleMask |= NSWindowStyleMaskMiniaturizable;
Expand Down Expand Up @@ -695,6 +695,9 @@ void ViewDidMoveToSuperview(NSView* self, SEL _cmd) {
}

void NativeWindowMac::SetFullScreen(bool fullscreen) {
if (!has_frame() && !HasStyleMask(NSWindowStyleMaskTitled))
return;

// [NSWindow -toggleFullScreen] is an asynchronous operation, which means
// that it's possible to call it while a fullscreen transition is currently
// in process. This can create weird behavior (incl. phantom windows),
Expand Down
5 changes: 5 additions & 0 deletions spec-main/api-browser-window-spec.ts
Expand Up @@ -1450,6 +1450,11 @@ describe('BrowserWindow module', () => {
expect(w.fullScreen).to.be.true();
});

it('does not go fullscreen if roundedCorners are enabled', async () => {
w = new BrowserWindow({ frame: false, roundedCorners: false, fullscreen: true });
expect(w.fullScreen).to.be.false();
});

it('can be changed', () => {
w.fullScreen = false;
expect(w.fullScreen).to.be.false();
Expand Down

0 comments on commit dad125a

Please sign in to comment.