fix: fullscreen crashing with no roundedCorners and no frame (#39747)
This commit is contained in:
parent
2324c4d8fd
commit
ab185c058f
3 changed files with 9 additions and 6 deletions
|
@ -683,9 +683,6 @@ void NativeWindowMac::DetachChildren() {
|
||||||
}
|
}
|
||||||
|
|
||||||
void NativeWindowMac::SetFullScreen(bool fullscreen) {
|
void NativeWindowMac::SetFullScreen(bool fullscreen) {
|
||||||
if (!has_frame() && !HasStyleMask(NSWindowStyleMaskTitled))
|
|
||||||
return;
|
|
||||||
|
|
||||||
// [NSWindow -toggleFullScreen] is an asynchronous operation, which means
|
// [NSWindow -toggleFullScreen] is an asynchronous operation, which means
|
||||||
// that it's possible to call it while a fullscreen transition is currently
|
// that it's possible to call it while a fullscreen transition is currently
|
||||||
// in process. This can create weird behavior (incl. phantom windows),
|
// in process. This can create weird behavior (incl. phantom windows),
|
||||||
|
@ -718,7 +715,8 @@ void NativeWindowMac::SetFullScreen(bool fullscreen) {
|
||||||
? FullScreenTransitionState::kEntering
|
? FullScreenTransitionState::kEntering
|
||||||
: FullScreenTransitionState::kExiting;
|
: FullScreenTransitionState::kExiting;
|
||||||
|
|
||||||
[window_ toggleFullScreenMode:nil];
|
if (![window_ toggleFullScreenMode:nil])
|
||||||
|
fullscreen_transition_state_ = FullScreenTransitionState::kNone;
|
||||||
}
|
}
|
||||||
|
|
||||||
bool NativeWindowMac::IsFullscreen() const {
|
bool NativeWindowMac::IsFullscreen() const {
|
||||||
|
|
|
@ -44,7 +44,7 @@ class ScopedDisableResize {
|
||||||
- (electron::NativeWindowMac*)shell;
|
- (electron::NativeWindowMac*)shell;
|
||||||
- (id)accessibilityFocusedUIElement;
|
- (id)accessibilityFocusedUIElement;
|
||||||
- (NSRect)originalContentRectForFrameRect:(NSRect)frameRect;
|
- (NSRect)originalContentRectForFrameRect:(NSRect)frameRect;
|
||||||
- (void)toggleFullScreenMode:(id)sender;
|
- (BOOL)toggleFullScreenMode:(id)sender;
|
||||||
- (NSImage*)_cornerMask;
|
- (NSImage*)_cornerMask;
|
||||||
@end
|
@end
|
||||||
|
|
||||||
|
|
|
@ -334,7 +334,10 @@ void SwizzleSwipeWithEvent(NSView* view, SEL swiz_selector) {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
- (void)toggleFullScreenMode:(id)sender {
|
- (BOOL)toggleFullScreenMode:(id)sender {
|
||||||
|
if (!shell_->has_frame() && !shell_->HasStyleMask(NSWindowStyleMaskTitled))
|
||||||
|
return NO;
|
||||||
|
|
||||||
bool is_simple_fs = shell_->IsSimpleFullScreen();
|
bool is_simple_fs = shell_->IsSimpleFullScreen();
|
||||||
bool always_simple_fs = shell_->always_simple_fullscreen();
|
bool always_simple_fs = shell_->always_simple_fullscreen();
|
||||||
|
|
||||||
|
@ -363,6 +366,8 @@ void SwizzleSwipeWithEvent(NSView* view, SEL swiz_selector) {
|
||||||
bool maximizable = shell_->IsMaximizable();
|
bool maximizable = shell_->IsMaximizable();
|
||||||
shell_->SetMaximizable(maximizable);
|
shell_->SetMaximizable(maximizable);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
return YES;
|
||||||
}
|
}
|
||||||
|
|
||||||
- (void)performMiniaturize:(id)sender {
|
- (void)performMiniaturize:(id)sender {
|
||||||
|
|
Loading…
Reference in a new issue