From b9e9208011c0c51e31f665d257f98ec55baabdce Mon Sep 17 00:00:00 2001 From: Ilya Laktyushin Date: Tue, 28 Jul 2020 19:15:57 +0300 Subject: [PATCH] Fix modal screens presentation in landscape --- .../Display/Source/Navigation/NavigationController.swift | 5 +++-- .../Display/Source/Navigation/NavigationModalContainer.swift | 5 +++-- 2 files changed, 6 insertions(+), 4 deletions(-) diff --git a/submodules/Display/Source/Navigation/NavigationController.swift b/submodules/Display/Source/Navigation/NavigationController.swift index 26a12835c0..815b56521d 100644 --- a/submodules/Display/Source/Navigation/NavigationController.swift +++ b/submodules/Display/Source/Navigation/NavigationController.swift @@ -579,6 +579,7 @@ open class NavigationController: UINavigationController, ContainableController, var previousModalContainer: NavigationModalContainer? var visibleModalCount = 0 var topModalIsFlat = false + var isLandscape = layout.orientation == .landscape var hasVisibleStandaloneModal = false var topModalDismissProgress: CGFloat = 0.0 @@ -784,7 +785,7 @@ open class NavigationController: UINavigationController, ContainableController, let visibleRootModalDismissProgress: CGFloat var additionalModalFrameProgress: CGFloat if visibleModalCount == 1 { - effectiveRootModalDismissProgress = topModalIsFlat ? 1.0 : topModalDismissProgress + effectiveRootModalDismissProgress = (topModalIsFlat || isLandscape) ? 1.0 : topModalDismissProgress visibleRootModalDismissProgress = effectiveRootModalDismissProgress additionalModalFrameProgress = 0.0 } else if visibleModalCount >= 2 { @@ -851,7 +852,7 @@ open class NavigationController: UINavigationController, ContainableController, } let maxScale: CGFloat let maxOffset: CGFloat - if topModalIsFlat { + if topModalIsFlat || isLandscape { maxScale = 1.0 maxOffset = 0.0 } else if visibleModalCount <= 1 { diff --git a/submodules/Display/Source/Navigation/NavigationModalContainer.swift b/submodules/Display/Source/Navigation/NavigationModalContainer.swift index aa40c78ee3..247d077368 100644 --- a/submodules/Display/Source/Navigation/NavigationModalContainer.swift +++ b/submodules/Display/Source/Navigation/NavigationModalContainer.swift @@ -328,6 +328,7 @@ final class NavigationModalContainer: ASDisplayNode, UIScrollViewDelegate, UIGes self.scrollNode.view.isScrollEnabled = !isStandaloneModal + let isLandscape = layout.orientation == .landscape let containerLayout: ContainerViewLayout let containerFrame: CGRect let containerScale: CGFloat @@ -336,7 +337,7 @@ final class NavigationModalContainer: ASDisplayNode, UIScrollViewDelegate, UIGes self.panRecognizer?.isEnabled = true self.dim.backgroundColor = UIColor(white: 0.0, alpha: 0.25) self.container.clipsToBounds = true - if isStandaloneModal { + if isStandaloneModal || isLandscape { self.container.cornerRadius = 0.0 } else { self.container.cornerRadius = 10.0 @@ -351,7 +352,7 @@ final class NavigationModalContainer: ASDisplayNode, UIScrollViewDelegate, UIGes } var topInset: CGFloat - if isStandaloneModal { + if isStandaloneModal || isLandscape { topInset = 0.0 containerLayout = layout