winemac: Fix failure to render OpenGL on macOS 10.14 (Mojave).

For programs linked against the macOS 10.14 SDK, Mojave makes all view
hierarchies layer-backed.  For views to which OpenGL contexts have been
attached this caused a regression where they sometimes failed to render and
just remain black.  Updating the OpenGL context after the framework has
assigned a layer to our view works around the problem.  Thanks to Elviss
Strazdins on Stack Overflow for the solution
<https://stackoverflow.com/a/52938517/1312143>.

Signed-off-by: Ken Thomases <ken@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
stable
Ken Thomases 2019-02-07 13:57:22 -06:00 committed by Alexandre Julliard
parent cf9b492fec
commit 654b27823d
1 changed files with 6 additions and 0 deletions

View File

@ -747,6 +747,12 @@ static CVReturn WineDisplayLinkCallback(CVDisplayLinkRef displayLink, const CVTi
[super willRemoveSubview:subview];
}
- (void) setLayer:(CALayer*)newLayer
{
[super setLayer:newLayer];
[self updateGLContexts];
}
/*
* ---------- NSTextInputClient methods ----------
*/