From 91f012ee9ff3a6074e2a92d13b2cacb638492fa8 Mon Sep 17 00:00:00 2001 From: TrueZhuanjia Date: Mon, 7 Jul 2025 11:32:10 +0800 Subject: [PATCH] disable user interaction when settings menu expanded in-streaming --- .../ViewControllers/MainFrameViewController.m | 37 +++---------------- .../StreamFrameViewController.h | 1 + .../StreamFrameViewController.m | 6 +++ 3 files changed, 13 insertions(+), 31 deletions(-) diff --git a/VoidLink/ViewControllers/MainFrameViewController.m b/VoidLink/ViewControllers/MainFrameViewController.m index ade1c85f..7ddb8dc3 100644 --- a/VoidLink/ViewControllers/MainFrameViewController.m +++ b/VoidLink/ViewControllers/MainFrameViewController.m @@ -71,6 +71,7 @@ UIView* menuSeparator; UIView* snapshot; SettingsViewController* settingsViewController; + StreamFrameViewController* streamFrameViewController; id navBarAppearanceStandard; #if TARGET_OS_TV @@ -1117,45 +1118,19 @@ static NSMutableSet* hostList; if(self.settingsExpandedInStreamView) [revealController buttonsInStreaming]; else [revealController buttonsNotInStreaming]; - //[settingsViewController.resolutionSelector setEnabled:!self.settingsExpandedInStreamView]; - //settingsViewController.resolutionStack.hidden = self.settingsExpandedInStreamView; + [streamFrameViewController setUserInteractionEnabledForStreamView:!_settingsExpandedInStreamView || position == FrontViewPositionLeft]; + [settingsViewController setHidden:_settingsExpandedInStreamView forStack:settingsViewController.resolutionStack]; - //settingsViewController.fpsStack.hidden = self.settingsExpandedInStreamView; [settingsViewController setHidden:_settingsExpandedInStreamView forStack:settingsViewController.fpsStack]; - [settingsViewController widget:settingsViewController.bitrateSlider setEnabled:!self.settingsExpandedInStreamView]; - //settingsViewController.bitrateStack.hidden = self.settingsExpandedInStreamView; - //settingsViewController.optimizeGamesStack.hidden = self.settingsExpandedInStreamView; [settingsViewController setHidden:_settingsExpandedInStreamView forStack:settingsViewController.optimizeGamesStack]; - - //settingsViewController.audioOnPcStack.hidden = self.settingsExpandedInStreamView; [settingsViewController setHidden:_settingsExpandedInStreamView forStack:settingsViewController.audioOnPcStack]; - - //settingsViewController.codecStack.hidden = self.settingsExpandedInStreamView; - //[settingsViewController setHidden:_settingsExpandedInStreamView forStack:settingsViewController.codecStack]; [settingsViewController.codecSelector setEnabled:!_settingsExpandedInStreamView]; - - - // settingsViewController.yuv444Stack.hidden = self.settingsExpandedInStreamView; - // [settingsViewController setHidden:_settingsExpandedInStreamView forStack:settingsViewController.yuv444Stack]; [settingsViewController.yuv444Switch setEnabled:!_settingsExpandedInStreamView]; - - - //settingsViewController.HdrStack.hidden = self.settingsExpandedInStreamView; - // [settingsViewController setHidden:_settingsExpandedInStreamView forStack:settingsViewController.HdrStack]; [settingsViewController.hdrSwitch setEnabled:!_settingsExpandedInStreamView]; - - - //settingsViewController.framepacingStack.hidden = self.settingsExpandedInStreamView; [settingsViewController setHidden:_settingsExpandedInStreamView forStack:settingsViewController.framepacingStack]; - - //settingsViewController.citrixX1MouseStack.hidden = self.settingsExpandedInStreamView; [settingsViewController setHidden:_settingsExpandedInStreamView forStack:settingsViewController.citrixX1MouseStack]; - - //settingsViewController.externalDisplayModeStack.hidden = self.settingsExpandedInStreamView; [settingsViewController setHidden:_settingsExpandedInStreamView forStack:settingsViewController.externalDisplayModeStack]; - - // [settingsViewController.unlockDisplayOrientationSelector setEnabled:!self.settingsExpandedInStreamView && [self isFullScreenRequired]];//need "requires fullscreen" enabled in the app bunddle to make runtime orientation limitation woring } - (void)revealController:(SWRevealViewController *)revealController didMoveToPosition:(FrontViewPosition)position { @@ -1182,9 +1157,9 @@ static NSMutableSet* hostList; - (void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender { if ([segue.destinationViewController isKindOfClass:[StreamFrameViewController class]]) { - StreamFrameViewController* streamFrame = segue.destinationViewController; - streamFrame.mainFrameViewcontroller = self; - streamFrame.streamConfig = _streamConfig; + streamFrameViewController = segue.destinationViewController; + streamFrameViewController.mainFrameViewcontroller = self; + streamFrameViewController.streamConfig = _streamConfig; } } diff --git a/VoidLink/ViewControllers/StreamFrameViewController.h b/VoidLink/ViewControllers/StreamFrameViewController.h index 7ab395dd..a71c0d64 100644 --- a/VoidLink/ViewControllers/StreamFrameViewController.h +++ b/VoidLink/ViewControllers/StreamFrameViewController.h @@ -31,5 +31,6 @@ -(void)updatePreferredDisplayMode:(BOOL)streamActive; -(void)reConfigStreamViewRealtime; +- (void)setUserInteractionEnabledForStreamView:(bool)enabled; @end diff --git a/VoidLink/ViewControllers/StreamFrameViewController.m b/VoidLink/ViewControllers/StreamFrameViewController.m index 8ca232f8..6b471386 100644 --- a/VoidLink/ViewControllers/StreamFrameViewController.m +++ b/VoidLink/ViewControllers/StreamFrameViewController.m @@ -525,6 +525,12 @@ [self->_streamView reloadOnScreenWidgetViews]; //update keyboard buttons here } +- (void)setUserInteractionEnabledForStreamView:(bool)enabled{ + _streamView.userInteractionEnabled = enabled; + for(UIView* view in self.view.subviews){ + if([view isKindOfClass:[OnScreenWidgetView class]]) view.userInteractionEnabled = enabled; + } +} - (UIView *)viewForZoomingInScrollView:(UIScrollView *)scrollView { return _streamView;