diff --git a/Limelight/ViewControllers/MainFrameViewController.m b/Limelight/ViewControllers/MainFrameViewController.m index 7a9ddb1..174d158 100644 --- a/Limelight/ViewControllers/MainFrameViewController.m +++ b/Limelight/ViewControllers/MainFrameViewController.m @@ -610,6 +610,9 @@ static NSMutableSet* hostList; - (void)viewDidAppear:(BOOL)animated { [super viewDidAppear:animated]; + + [[self revealViewController] setPrimaryViewController:self]; + [self.navigationController setNavigationBarHidden:NO animated:YES]; // Hide 1px border line diff --git a/Limelight/ViewControllers/SWRevealViewController.h b/Limelight/ViewControllers/SWRevealViewController.h index 279106e..3eea263 100755 --- a/Limelight/ViewControllers/SWRevealViewController.h +++ b/Limelight/ViewControllers/SWRevealViewController.h @@ -180,6 +180,8 @@ typedef NS_ENUM(NSInteger, SWRevealToggleAnimationType) @interface SWRevealViewController : UIViewController +- (void)setPrimaryViewController:(UIViewController*)viewController; + /* Basic API */ // Object instance init and rear view setting diff --git a/Limelight/ViewControllers/SWRevealViewController.m b/Limelight/ViewControllers/SWRevealViewController.m index 3ed41fd..0ef3488 100755 --- a/Limelight/ViewControllers/SWRevealViewController.m +++ b/Limelight/ViewControllers/SWRevealViewController.m @@ -583,6 +583,7 @@ static CGFloat scaledValue( CGFloat v1, CGFloat min2, CGFloat max2, CGFloat min1 FrontViewPosition _panInitialFrontPosition; NSMutableArray *_animationQueue; BOOL _userInteractionStore; + UIViewController *_primaryViewController; } const int FrontViewPositionNone = 0xff; @@ -1364,6 +1365,26 @@ const int FrontViewPositionNone = 0xff; _enqueue( [theSelf _performTransitionOperation:operation withViewController:newViewController animated:animated] ); } +- (void)setPrimaryViewController:(UIViewController*)viewController +{ + _primaryViewController = viewController; + + // These are derived from the primary view controller + if (@available(iOS 11.0, *)) { + [self setNeedsUpdateOfHomeIndicatorAutoHidden]; + [self setNeedsUpdateOfScreenEdgesDeferringSystemGestures]; + } +} + +- (UIViewController*)childViewControllerForHomeIndicatorAutoHidden +{ + return _primaryViewController; +} + +- (UIViewController*)childViewControllerForScreenEdgesDeferringSystemGestures +{ + return _primaryViewController; +} #pragma mark Animated view controller deployment and layout diff --git a/Limelight/ViewControllers/StreamFrameViewController.m b/Limelight/ViewControllers/StreamFrameViewController.m index a6e4e8d..b1230f2 100644 --- a/Limelight/ViewControllers/StreamFrameViewController.m +++ b/Limelight/ViewControllers/StreamFrameViewController.m @@ -21,6 +21,13 @@ StreamManager *_streamMan; } +- (void)viewDidAppear:(BOOL)animated +{ + [super viewDidAppear:animated]; + + [[self revealViewController] setPrimaryViewController:self]; +} + - (void)viewDidLoad { [super viewDidLoad]; @@ -146,6 +153,11 @@ // Dispose of any resources that can be recreated. } +// Require a confirmation when streaming to activate a system gesture +- (UIRectEdge)preferredScreenEdgesDeferringSystemGestures { + return UIRectEdgeAll; +} + - (BOOL)shouldAutorotate { return YES; }