fixed: unable to turn on-screen widget on/off during streaming
This commit is contained in:
1 parent
4b001f9366
commit
c0b1326dbd
2 files changed
+9
-1
No files matched your search
@@ -56,6 +56,7 @@
|
|||||||
- (void) clearOnScreenWidgets;
|
- (void) clearOnScreenWidgets;
|
||||||
- (void) reloadOnScreenWidgetViews;
|
- (void) reloadOnScreenWidgetViews;
|
||||||
- (void) saveRelocatedWidgetViews;
|
- (void) saveRelocatedWidgetViews;
|
||||||
|
- (bool) isOnScreenWidgetEnabled;
|
||||||
|
|
||||||
- (CGSize) getVideoAreaSize;
|
- (CGSize) getVideoAreaSize;
|
||||||
- (CGPoint) adjustCoordinatesForVideoArea:(CGPoint)point;
|
- (CGPoint) adjustCoordinatesForVideoArea:(CGPoint)point;
|
||||||
|
|||||||
@@ -63,6 +63,7 @@
|
|||||||
BOOL _userIsInteracting;
|
BOOL _userIsInteracting;
|
||||||
bool viewJustLoaded;
|
bool viewJustLoaded;
|
||||||
bool viewIsBeingResized;
|
bool viewIsBeingResized;
|
||||||
|
bool previousOnScreenWidgetEnabled;
|
||||||
CGSize _keyboardSize;
|
CGSize _keyboardSize;
|
||||||
PlotMetrics _decodeMetrics;
|
PlotMetrics _decodeMetrics;
|
||||||
PlotMetrics _frameDropMetrics;
|
PlotMetrics _frameDropMetrics;
|
||||||
@@ -384,7 +385,12 @@
|
|||||||
// we got self.view passed to streamView class as the topLayerView, will be useful in many cases
|
// we got self.view passed to streamView class as the topLayerView, will be useful in many cases
|
||||||
[self->_streamView reloadOnScreenControlsRealtimeWith:(ControllerSupport*)_controllerSupport
|
[self->_streamView reloadOnScreenControlsRealtimeWith:(ControllerSupport*)_controllerSupport
|
||||||
andConfig:(StreamConfiguration*)_streamConfig]; //reload OSC here.
|
andConfig:(StreamConfiguration*)_streamConfig]; //reload OSC here.
|
||||||
if(viewJustLoaded||reloadOnscreenWidgets) [self->_streamView reloadOnScreenWidgetViews]; //reload keyboard buttons here. the keyboard widget view will be added to the streamframe view instead streamview, the highest layer, which saves a lot of reengineering
|
|
||||||
|
bool onScreenWidgetSwitched = previousOnScreenWidgetEnabled != [_streamView isOnScreenWidgetEnabled];
|
||||||
|
bool needReload = onScreenWidgetSwitched && !previousOnScreenWidgetEnabled;
|
||||||
|
if(viewJustLoaded||reloadOnscreenWidgets||needReload) [_streamView reloadOnScreenWidgetViews]; //reload keyboard buttons here. the keyboard widget view will be added to the streamframe view instead streamview, the highest layer, which saves a lot of reengineering
|
||||||
|
if(onScreenWidgetSwitched && previousOnScreenWidgetEnabled) [_streamView clearOnScreenWidgets];
|
||||||
|
previousOnScreenWidgetEnabled = [_streamView isOnScreenWidgetEnabled];
|
||||||
|
|
||||||
[self reloadAirPlayConfig];
|
[self reloadAirPlayConfig];
|
||||||
[self mousePresenceChanged];
|
[self mousePresenceChanged];
|
||||||
@@ -471,6 +477,7 @@
|
|||||||
[super viewDidAppear:animated];
|
[super viewDidAppear:animated];
|
||||||
viewJustLoaded = false;
|
viewJustLoaded = false;
|
||||||
_deviceWindow = self.view.window;
|
_deviceWindow = self.view.window;
|
||||||
|
previousOnScreenWidgetEnabled = [_streamView isOnScreenWidgetEnabled];
|
||||||
if (@available(iOS 13.0, *)) {
|
if (@available(iOS 13.0, *)) {
|
||||||
UIScreen *currentScreen = self.view.window.windowScene.screen;
|
UIScreen *currentScreen = self.view.window.windowScene.screen;
|
||||||
if (UIScreen.screens.count > 1 && [self isAirPlayEnabled] && currentScreen == UIScreen.mainScreen) {
|
if (UIScreen.screens.count > 1 && [self isAirPlayEnabled] && currentScreen == UIScreen.mainScreen) {
|
||||||
|
|||||||
Reference in new issue
Block a user