Wait for the fullscreen transition to complete before allowing the application to continue.

This fixes Alt-Enter in the Steam streaming client, which sets the window size and position immediately after switching out of fullscreen mode.
This commit is contained in:
Sam Lantinga 2014-06-04 09:39:08 -07:00
parent 16360b1979
commit 65133ebc1b

View File

@ -1544,6 +1544,20 @@ Cocoa_SetWindowFullscreenSpace(SDL_Window * window, SDL_bool state)
if ([data->listener setFullscreenSpace:(state ? YES : NO)]) { if ([data->listener setFullscreenSpace:(state ? YES : NO)]) {
succeeded = SDL_TRUE; succeeded = SDL_TRUE;
/* Wait for the transition to complete, so application changes
take effect properly (e.g. setting the window size, etc.)
*/
const int limit = 10000;
int count = 0;
while ([data->listener isInFullscreenSpaceTransition]) {
if ( ++count == limit ) {
/* Uh oh, transition isn't completing. Should we assert? */
break;
}
SDL_Delay(1);
SDL_PumpEvents();
}
} }
[pool release]; [pool release];