diff --git a/submodules/Display/Display/NativeWindowHostView.swift b/submodules/Display/Display/NativeWindowHostView.swift index 70b98bdcc9..386803213b 100644 --- a/submodules/Display/Display/NativeWindowHostView.swift +++ b/submodules/Display/Display/NativeWindowHostView.swift @@ -347,6 +347,13 @@ public func nativeWindowHostView() -> (UIWindow & WindowHost, WindowHostView, UI rootViewController.viewDidAppear(false) let aboveStatusbarWindow = AboveStatusBarWindow(frame: UIScreen.main.bounds) + aboveStatusbarWindow.supportedOrientations = { [weak rootViewController] in + if let rootViewController = rootViewController { + return rootViewController.supportedInterfaceOrientations + } else { + return .portrait + } + } let hostView = WindowHostView(containerView: rootViewController.view, eventView: window, aboveStatusBarView: rootViewController.view, isRotating: { return window.isRotating() diff --git a/submodules/Display/Display/UIViewController+Navigation.h b/submodules/Display/Display/UIViewController+Navigation.h index 4246fa11b7..9c3f5dc007 100644 --- a/submodules/Display/Display/UIViewController+Navigation.h +++ b/submodules/Display/Display/UIViewController+Navigation.h @@ -36,4 +36,6 @@ void applyKeyboardAutocorrection(); @interface AboveStatusBarWindow : UIWindow +@property (nonatomic, copy) UIInterfaceOrientationMask (^ _Nullable supportedOrientations)(void); + @end diff --git a/submodules/Display/Display/UIViewController+Navigation.m b/submodules/Display/Display/UIViewController+Navigation.m index d938446289..d08b6a9780 100644 --- a/submodules/Display/Display/UIViewController+Navigation.m +++ b/submodules/Display/Display/UIViewController+Navigation.m @@ -311,6 +311,8 @@ void applyKeyboardAutocorrection() { @interface AboveStatusBarWindowController : UIViewController +@property (nonatomic, copy) UIInterfaceOrientationMask (^ _Nullable supportedOrientations)(void); + @end @implementation AboveStatusBarWindowController @@ -330,6 +332,10 @@ void applyKeyboardAutocorrection() { [self viewDidLoad]; } +- (UIInterfaceOrientationMask)supportedInterfaceOrientations { + return UIInterfaceOrientationMaskPortrait; +} + @end @implementation AboveStatusBarWindow @@ -348,6 +354,11 @@ void applyKeyboardAutocorrection() { return self; } +- (void)setSupportedOrientations:(UIInterfaceOrientationMask (^)(void))supportedOrientations { + _supportedOrientations = [supportedOrientations copy]; + ((AboveStatusBarWindowController *)self.rootViewController).supportedOrientations = _supportedOrientations; +} + - (BOOL)shouldAffectStatusBarAppearance { return false; }