mirror of
https://github.com/libretro/RetroArch
synced 2025-01-29 00:32:49 +00:00
Merge pull request #7297 from yoshisuga/ios-iphone-x-notch
[iOS] Support iPhone X displays by adjusting for the 'notch'
This commit is contained in:
commit
0782418a90
@ -191,7 +191,7 @@ void *glkitview_init(void);
|
||||
{
|
||||
float width = 0.0f, height = 0.0f, tenpctw, tenpcth;
|
||||
RAScreen *screen = (__bridge RAScreen*)get_chosen_screen();
|
||||
UIInterfaceOrientation orientation = self.interfaceOrientation;
|
||||
UIInterfaceOrientation orientation = [[UIApplication sharedApplication] statusBarOrientation];
|
||||
CGRect screenSize = [screen bounds];
|
||||
SEL selector = NSSelectorFromString(BOXSTRING("coordinateSpace"));
|
||||
|
||||
@ -212,8 +212,40 @@ void *glkitview_init(void);
|
||||
|
||||
g_pause_indicator_view.frame = CGRectMake(tenpctw * 4.0f, 0.0f, tenpctw * 2.0f, tenpcth);
|
||||
[g_pause_indicator_view viewWithTag:1].frame = CGRectMake(0, 0, tenpctw * 2.0f, tenpcth);
|
||||
|
||||
[self adjustViewFrameForSafeArea];
|
||||
}
|
||||
|
||||
-(void)viewWillTransitionToSize:(CGSize)size withTransitionCoordinator:(id<UIViewControllerTransitionCoordinator>)coordinator {
|
||||
[super viewWillTransitionToSize:size withTransitionCoordinator:coordinator];
|
||||
if (@available(iOS 11, *)) {
|
||||
[coordinator animateAlongsideTransition:^(id<UIViewControllerTransitionCoordinatorContext> _Nonnull context) {
|
||||
[self adjustViewFrameForSafeArea];
|
||||
} completion:^(id<UIViewControllerTransitionCoordinatorContext> _Nonnull context) {
|
||||
}];
|
||||
}
|
||||
}
|
||||
|
||||
-(void)adjustViewFrameForSafeArea {
|
||||
// This is for adjusting the view frame to account for the notch in iPhone X phones
|
||||
if (@available(iOS 11, *)) {
|
||||
RAScreen *screen = (__bridge RAScreen*)get_chosen_screen();
|
||||
CGRect screenSize = [screen bounds];
|
||||
UIEdgeInsets inset = [[UIApplication sharedApplication] delegate].window.safeAreaInsets;
|
||||
UIInterfaceOrientation orientation = [[UIApplication sharedApplication] statusBarOrientation];
|
||||
CGRect newFrame = screenSize;
|
||||
if ( orientation == UIInterfaceOrientationPortrait ) {
|
||||
newFrame = CGRectMake(screenSize.origin.x, screenSize.origin.y + inset.top, screenSize.size.width, screenSize.size.height - inset.top);
|
||||
} else if ( orientation == UIInterfaceOrientationLandscapeLeft ) {
|
||||
newFrame = CGRectMake(screenSize.origin.x, screenSize.origin.y, screenSize.size.width - inset.right, screenSize.size.height);
|
||||
} else if ( orientation == UIInterfaceOrientationLandscapeRight ) {
|
||||
newFrame = CGRectMake(screenSize.origin.x + inset.left, screenSize.origin.y, screenSize.size.width - inset.left, screenSize.size.height);
|
||||
}
|
||||
self.view.frame = newFrame;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
#define ALMOST_INVISIBLE (.021f)
|
||||
|
||||
- (void)hidePauseButton
|
||||
|
Loading…
x
Reference in New Issue
Block a user