diff --git a/OpenRA.Platforms.Default/OpenRA.Platforms.Default.csproj b/OpenRA.Platforms.Default/OpenRA.Platforms.Default.csproj index fbb83d478a..d5fec2130c 100644 --- a/OpenRA.Platforms.Default/OpenRA.Platforms.Default.csproj +++ b/OpenRA.Platforms.Default/OpenRA.Platforms.Default.csproj @@ -3,7 +3,7 @@ - + diff --git a/OpenRA.Platforms.Default/Sdl2PlatformWindow.cs b/OpenRA.Platforms.Default/Sdl2PlatformWindow.cs index fbc2e2749d..df72404162 100644 --- a/OpenRA.Platforms.Default/Sdl2PlatformWindow.cs +++ b/OpenRA.Platforms.Default/Sdl2PlatformWindow.cs @@ -271,6 +271,10 @@ namespace OpenRA.Platforms.Default SDL.SDL_GL_GetDrawableSize(Window, out var width, out var height); surfaceSize = new Size(width, height); windowScale = width * 1f / windowSize.Width; + + // SDL expects OpenGL Context to be on the main thread on OSX by default. + // If this hint isn't set, window management calls will deadlock. + SDL.SDL_SetHint(SDL.SDL_HINT_MAC_OPENGL_ASYNC_DISPATCH, "1"); } else windowSize = new Size((int)(surfaceSize.Width / windowScale), (int)(surfaceSize.Height / windowScale)); diff --git a/OpenRA.WindowsLauncher/OpenRA.WindowsLauncher.csproj b/OpenRA.WindowsLauncher/OpenRA.WindowsLauncher.csproj index b330d1d288..ed5541c88c 100644 --- a/OpenRA.WindowsLauncher/OpenRA.WindowsLauncher.csproj +++ b/OpenRA.WindowsLauncher/OpenRA.WindowsLauncher.csproj @@ -21,7 +21,7 @@ - +