Skip to content

Commit

Permalink
cocoa: Don't change the NSWindow background color.
Browse files Browse the repository at this point in the history
Changing the background color causes the titlebar to blend against it on
modern macOS releases, making all SDL windows look wrong by default. This was
set to make the window not flash white before a GL context is ready, but we
can accomplish this in our window's view's drawRect implementation, too.
  • Loading branch information
icculus committed Oct 25, 2017
1 parent 8fd0c22 commit 9bbf92e
Showing 1 changed file with 5 additions and 1 deletion.
6 changes: 5 additions & 1 deletion src/video/cocoa/SDL_cocoawindow.m
Expand Up @@ -1152,6 +1152,11 @@ - (void)setSDLWindow:(SDL_Window*)window

- (void)drawRect:(NSRect)dirtyRect
{
/* Force the graphics context to clear to black so we don't get a flash of
white until the app is ready to draw. In practice on modern macOS, this
only gets called for window creation and other extraordinary events. */
[[NSColor blackColor] setFill];
NSRectFill(dirtyRect);
SDL_SendWindowEvent(_sdlWindow, SDL_WINDOWEVENT_EXPOSED, 0, 0);
}

Expand Down Expand Up @@ -1316,7 +1321,6 @@ - (BOOL)acceptsFirstMouse:(NSEvent *)theEvent
@catch (NSException *e) {
return SDL_SetError("%s", [[e reason] UTF8String]);
}
[nswindow setBackgroundColor:[NSColor blackColor]];

if (videodata->allow_spaces) {
SDL_assert(floor(NSAppKitVersionNumber) > NSAppKitVersionNumber10_6);
Expand Down

0 comments on commit 9bbf92e

Please sign in to comment.