From b15ec53a03fc718c222ea60afc5c8930be6b0fd6 Mon Sep 17 00:00:00 2001 From: Elias Naur Date: Wed, 3 Apr 2019 13:13:53 +0200 Subject: [PATCH] ui/app: fix display link on iOS 10 For some reason, the CADisplayLink.paused property didn't work on iOS 10 but does on iOS 12. Use addToRunLoop and removeFromRunLoop instead. Signed-off-by: Elias Naur --- ui/app/os_ios.m | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) diff --git a/ui/app/os_ios.m b/ui/app/os_ios.m index 1acb0380..6eda6364 100644 --- a/ui/app/os_ios.m +++ b/ui/app/os_ios.m @@ -129,9 +129,6 @@ NSArray *_keyCommands; if (self) { __weak id weakSelf = self; displayLink = [CADisplayLink displayLinkWithTarget:weakSelf selector:@selector(onFrameCallback:)]; - displayLink.paused = YES; - NSRunLoop *runLoop = [NSRunLoop currentRunLoop]; - [displayLink addToRunLoop:runLoop forMode:[runLoop currentMode]]; } return self; } @@ -141,7 +138,12 @@ NSArray *_keyCommands; } - (void)setAnimating:(BOOL)anim { - displayLink.paused = !anim; + NSRunLoop *runLoop = [NSRunLoop currentRunLoop]; + if (anim) { + [displayLink addToRunLoop:runLoop forMode:[runLoop currentMode]]; + } else { + [displayLink removeFromRunLoop:runLoop forMode:[runLoop currentMode]]; + } } - (void)touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event {