mirror of
https://github.com/Swiftgram/Telegram-iOS.git
synced 2025-06-16 05:55:20 +00:00
Fix video message layout when minimized container is present
This commit is contained in:
parent
9df433937e
commit
60196075a6
@ -90,6 +90,10 @@ public struct ContainerViewLayout: Equatable {
|
||||
return ContainerViewLayout(size: self.size, metrics: self.metrics, deviceMetrics: self.deviceMetrics, intrinsicInsets: intrinsicInsets, safeInsets: self.safeInsets, additionalInsets: self.additionalInsets, statusBarHeight: self.statusBarHeight, inputHeight: self.inputHeight, inputHeightIsInteractivellyChanging: self.inputHeightIsInteractivellyChanging, inVoiceOver: self.inVoiceOver)
|
||||
}
|
||||
|
||||
public func withUpdatedAdditionalInsets(_ additionalInsets: UIEdgeInsets) -> ContainerViewLayout {
|
||||
return ContainerViewLayout(size: self.size, metrics: self.metrics, deviceMetrics: self.deviceMetrics, intrinsicInsets: self.intrinsicInsets, safeInsets: self.safeInsets, additionalInsets: additionalInsets, statusBarHeight: self.statusBarHeight, inputHeight: self.inputHeight, inputHeightIsInteractivellyChanging: self.inputHeightIsInteractivellyChanging, inVoiceOver: self.inVoiceOver)
|
||||
}
|
||||
|
||||
public func withUpdatedInputHeight(_ inputHeight: CGFloat?) -> ContainerViewLayout {
|
||||
return ContainerViewLayout(size: self.size, metrics: self.metrics, deviceMetrics: self.deviceMetrics, intrinsicInsets: self.intrinsicInsets, safeInsets: self.safeInsets, additionalInsets: self.additionalInsets, statusBarHeight: self.statusBarHeight, inputHeight: inputHeight, inputHeightIsInteractivellyChanging: self.inputHeightIsInteractivellyChanging, inVoiceOver: self.inVoiceOver)
|
||||
}
|
||||
|
@ -443,7 +443,20 @@ open class NavigationController: UINavigationController, ContainableController,
|
||||
globalScrollToTopNode.frame = CGRect(origin: CGPoint(x: 0.0, y: -1.0), size: CGSize(width: layout.size.width, height: 1.0))
|
||||
}
|
||||
|
||||
let overlayContainerLayout = layout
|
||||
var overlayContainerLayout = layout
|
||||
|
||||
var updatedSize = layout.size
|
||||
var updatedIntrinsicInsets = layout.intrinsicInsets
|
||||
var updatedAdditionalInsets = layout.additionalInsets
|
||||
if let minimizedContainer = self.minimizedContainer {
|
||||
if (layout.inputHeight ?? 0.0).isZero {
|
||||
let minimizedContainerHeight = minimizedContainer.collapsedHeight(layout: layout)
|
||||
updatedSize.height -= minimizedContainerHeight
|
||||
updatedIntrinsicInsets.bottom = 0.0
|
||||
updatedAdditionalInsets.bottom += minimizedContainerHeight
|
||||
}
|
||||
}
|
||||
overlayContainerLayout = overlayContainerLayout.withUpdatedAdditionalInsets(updatedAdditionalInsets)
|
||||
|
||||
if let inCallStatusBar = self.inCallStatusBar {
|
||||
let isLandscape = layout.size.width > layout.size.height
|
||||
@ -843,8 +856,6 @@ open class NavigationController: UINavigationController, ContainableController,
|
||||
layout.additionalInsets.left = max(layout.intrinsicInsets.left, additionalSideInsets.left)
|
||||
layout.additionalInsets.right = max(layout.intrinsicInsets.right, additionalSideInsets.right)
|
||||
|
||||
var updatedSize = layout.size
|
||||
var updatedIntrinsicInsets = layout.intrinsicInsets
|
||||
if case .flat = navigationLayout.root, let minimizedContainer = self.minimizedContainer {
|
||||
if minimizedContainer.supernode !== self.displayNode {
|
||||
if let rootContainer = self.rootContainer, case let .flat(flatContainer) = rootContainer {
|
||||
@ -857,10 +868,6 @@ open class NavigationController: UINavigationController, ContainableController,
|
||||
self.displayNode.insertSubnode(minimizedContainer, at: 0)
|
||||
}
|
||||
}
|
||||
if (layout.inputHeight ?? 0.0).isZero {
|
||||
updatedSize.height -= minimizedContainer.collapsedHeight(layout: layout)
|
||||
updatedIntrinsicInsets.bottom = 0.0
|
||||
}
|
||||
}
|
||||
|
||||
switch navigationLayout.root {
|
||||
|
@ -1389,7 +1389,7 @@ public class VideoMessageCameraScreen: ViewController {
|
||||
}
|
||||
|
||||
var backgroundFrame = CGRect(origin: .zero, size: CGSize(width: layout.size.width, height: controller.inputPanelFrame.0.minY))
|
||||
if backgroundFrame.maxY < layout.size.height - 100.0 && (layout.inputHeight ?? 0.0).isZero && !controller.inputPanelFrame.1 {
|
||||
if backgroundFrame.maxY < layout.size.height - 100.0 && (layout.inputHeight ?? 0.0).isZero && !controller.inputPanelFrame.1 && layout.additionalInsets.bottom.isZero {
|
||||
backgroundFrame = CGRect(origin: .zero, size: CGSize(width: layout.size.width, height: layout.size.height - layout.intrinsicInsets.bottom - controller.inputPanelFrame.0.height))
|
||||
}
|
||||
|
||||
|
Loading…
x
Reference in New Issue
Block a user