diff --git a/xbmc/platform/darwin/ios-common/IOSKeyboard.mm b/xbmc/platform/darwin/ios-common/IOSKeyboard.mm index ba03444c060b9..c76572ba5cc39 100644 --- a/xbmc/platform/darwin/ios-common/IOSKeyboard.mm +++ b/xbmc/platform/darwin/ios-common/IOSKeyboard.mm @@ -38,9 +38,7 @@ return false; // assume we are only drawn on the mainscreen ever! - UIScreen* pCurrentScreen = [UIScreen mainScreen]; - CGRect keyboardFrame = - CGRectMake(0, 0, pCurrentScreen.bounds.size.width, pCurrentScreen.bounds.size.height); + auto keyboardFrame = [g_xbmcController fullscreenSubviewFrame]; //create the keyboardview m_impl->g_pIosKeyboard = [[KeyboardView alloc] initWithFrame:keyboardFrame]; diff --git a/xbmc/platform/darwin/ios/XBMCController.h b/xbmc/platform/darwin/ios/XBMCController.h index adcb40d64dcbb..137159f16205f 100644 --- a/xbmc/platform/darwin/ios/XBMCController.h +++ b/xbmc/platform/darwin/ios/XBMCController.h @@ -66,6 +66,7 @@ typedef enum - (void) setIOSNowPlayingInfo:(NSDictionary *)info; - (void) sendKey: (XBMCKey) key; - (void) observeDefaultCenterStuff: (NSNotification *) notification; +- (CGRect)fullscreenSubviewFrame; - (void) setFramebuffer; - (bool) presentFramebuffer; - (CGSize) getScreenSize; diff --git a/xbmc/platform/darwin/ios/XBMCController.mm b/xbmc/platform/darwin/ios/XBMCController.mm index 7264be87efabd..65d12657eedc3 100644 --- a/xbmc/platform/darwin/ios/XBMCController.mm +++ b/xbmc/platform/darwin/ios/XBMCController.mm @@ -577,6 +577,12 @@ - (void)viewWillAppear:(BOOL)animated [super viewWillAppear:animated]; } //-------------------------------------------------------------- +- (void)viewSafeAreaInsetsDidChange NS_AVAILABLE_IOS(11_0) +{ + [super viewSafeAreaInsetsDidChange]; + m_glView.frame = [self fullscreenSubviewFrame]; +} +//-------------------------------------------------------------- -(void) viewDidAppear:(BOOL)animated { [super viewDidAppear:animated]; @@ -633,6 +639,15 @@ - (void)viewDidUnload [super viewDidUnload]; } //-------------------------------------------------------------- +- (CGRect)fullscreenSubviewFrame +{ + auto rect = self.view.bounds; + if (@available(ios 11.0, *)) + return UIEdgeInsetsInsetRect(rect, self.view.safeAreaInsets); + else + return rect; +} +//-------------------------------------------------------------- - (void) setFramebuffer { [m_glView setFramebuffer];