disable user interaction when settings menu expanded in-streaming

This commit is contained in:
TrueZhuanjia
2025-07-07 11:32:10 +08:00
parent c4bc77db05
commit 91f012ee9f
3 changed files with 13 additions and 31 deletions
@@ -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;
}
}
@@ -31,5 +31,6 @@
-(void)updatePreferredDisplayMode:(BOOL)streamActive;
-(void)reConfigStreamViewRealtime;
- (void)setUserInteractionEnabledForStreamView:(bool)enabled;
@end
@@ -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;