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) { | ||||
|   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), | ||||
|  | @ -718,7 +715,8 @@ void NativeWindowMac::SetFullScreen(bool fullscreen) { | |||
|                                      ? FullScreenTransitionState::kEntering | ||||
|                                      : FullScreenTransitionState::kExiting; | ||||
| 
 | ||||
|   [window_ toggleFullScreenMode:nil]; | ||||
|   if (![window_ toggleFullScreenMode:nil]) | ||||
|     fullscreen_transition_state_ = FullScreenTransitionState::kNone; | ||||
| } | ||||
| 
 | ||||
| bool NativeWindowMac::IsFullscreen() const { | ||||
|  |  | |||
|  | @ -44,7 +44,7 @@ class ScopedDisableResize { | |||
| - (electron::NativeWindowMac*)shell; | ||||
| - (id)accessibilityFocusedUIElement; | ||||
| - (NSRect)originalContentRectForFrameRect:(NSRect)frameRect; | ||||
| - (void)toggleFullScreenMode:(id)sender; | ||||
| - (BOOL)toggleFullScreenMode:(id)sender; | ||||
| - (NSImage*)_cornerMask; | ||||
| @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 always_simple_fs = shell_->always_simple_fullscreen(); | ||||
| 
 | ||||
|  | @ -363,6 +366,8 @@ void SwizzleSwipeWithEvent(NSView* view, SEL swiz_selector) { | |||
|     bool maximizable = shell_->IsMaximizable(); | ||||
|     shell_->SetMaximizable(maximizable); | ||||
|   } | ||||
| 
 | ||||
|   return YES; | ||||
| } | ||||
| 
 | ||||
| - (void)performMiniaturize:(id)sender { | ||||
|  |  | |||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue
	
	 Shelley Vohr
				Shelley Vohr