Don't use pointer lock if the mouse isn't compatible with GCMouse

This commit is contained in:
Cameron Gutman
2020-09-18 18:48:35 -05:00
parent 5043fadace
commit 88c18ad397
4 changed files with 25 additions and 7 deletions

View File

@@ -383,6 +383,14 @@
#endif
}
- (void)mousePresenceChanged {
#if !TARGET_OS_TV
if (@available(iOS 14.0, *)) {
[self setNeedsUpdateOfPrefersPointerLocked];
}
#endif
}
- (void)userInteractionBegan {
// Disable hiding home bar when user is interacting.
// iOS will force it to be shown anyway, but it will
@@ -434,7 +442,10 @@
}
- (BOOL)prefersPointerLocked {
return YES;
// Pointer lock breaks the UIKit mouse APIs, which is a problem because
// GCMouse is horribly broken on iOS 14.0 for certain mice. Only lock
// the cursor if there is a GCMouse present.
return [GCMouse mice].count > 0;
}
#endif