Skip to content
This repository has been archived by the owner on Feb 11, 2021. It is now read-only.

Commit

Permalink
Fix for Game Center leaderboard screens not always responding to touc…
Browse files Browse the repository at this point in the history
…h input in iOS apps that don't use SDL_iPhoneSetAnimationCallback
  • Loading branch information
DavidLudwig committed Jul 23, 2012
1 parent 5280cdd commit 08817dd
Showing 1 changed file with 12 additions and 2 deletions.
14 changes: 12 additions & 2 deletions src/video/uikit/SDL_uikitevents.m
Expand Up @@ -57,14 +57,24 @@ So what we do is that in the UIApplicationDelegate class (SDLUIApplicationDelega
*/
if (setjmp(*jump_env()) == 0) {
/* if we're setting the jump, rather than jumping back */

/* Let the run loop run for a short amount of time: long enough for
touch events to get processed (which is important to get certain
elements of Game Center's GKLeaderboardViewController to respond
to touch input), but not long enough to introduce a significant
delay in the rest of the app.
*/
const CFTimeInterval seconds = 0.000002;

/* Pump most event types. */
SInt32 result;
do {
result = CFRunLoopRunInMode(kCFRunLoopDefaultMode, 0, TRUE);
result = CFRunLoopRunInMode(kCFRunLoopDefaultMode, seconds, TRUE);
} while (result == kCFRunLoopRunHandledSource);

/* Make sure UIScrollView objects scroll properly. */
do {
result = CFRunLoopRunInMode((CFStringRef)UITrackingRunLoopMode, 0, TRUE);
result = CFRunLoopRunInMode((CFStringRef)UITrackingRunLoopMode, seconds, TRUE);
} while(result == kCFRunLoopRunHandledSource);
}
}
Expand Down

0 comments on commit 08817dd

Please sign in to comment.