IOS7: Adjust the frame on safeAreaInsetsDidChange calls
There is a race condition when iOS updates the safe insets and the view is updated on orientation changes. When rotating the device the callback function interfaceOrientationChanged is called. This triggers rebuildSurface to be called, which will call updateOutputSurface, which will trigger initSurface. That function will finally will adjust the main frame towards the safe areas by calling the function adjustViewFrameForSafeArea. But it seems that when adjustViewFrameForSafeArea is called the safe insets values are not updated which will lead to wrong offset values in the frame for touches which will make the mouse pointer inaccurate. The iOS system makes calls to safeAreaInsetsDidChange whenever the safe insets values are updated. Make sure to update the frame on these calls to get correct touch offsets.
This commit is contained in:
parent
2404a90a98
commit
4de20a8032
1 changed files with 7 additions and 0 deletions
|
@ -820,6 +820,13 @@ uint getSizeNextPOT(uint size) {
|
|||
#endif
|
||||
}
|
||||
|
||||
#ifdef __IPHONE_11_0
|
||||
// This delegate method is called when the safe area of the view changes
|
||||
-(void)safeAreaInsetsDidChange {
|
||||
[self adjustViewFrameForSafeArea];
|
||||
}
|
||||
#endif
|
||||
|
||||
- (void)setViewTransformation {
|
||||
// Scale the shake offset according to the overlay size. We need this to
|
||||
// adjust the overlay mouse click coordinates when an offset is set.
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue