mirror of
https://github.com/Swiftgram/Telegram-iOS.git
synced 2025-06-15 21:45:19 +00:00
Fix on-screen navigation hiding
This commit is contained in:
parent
65d707fa4f
commit
50386f0bd4
@ -355,6 +355,8 @@ open class NavigationController: UINavigationController, ContainableController,
|
||||
}
|
||||
}
|
||||
|
||||
let initialPrefersOnScreenNavigationHidden = self.collectPrefersOnScreenNavigationHidden()
|
||||
|
||||
var overlayLayout = layout
|
||||
|
||||
if let globalOverlayContainerParent = self.globalOverlayContainerParent {
|
||||
@ -988,10 +990,15 @@ open class NavigationController: UINavigationController, ContainableController,
|
||||
self.isUpdatingContainers = false
|
||||
|
||||
if notifyGlobalOverlayControllersUpdated {
|
||||
self.globalOverlayControllersUpdated?()
|
||||
self.internalGlobalOverlayControllersUpdated()
|
||||
}
|
||||
|
||||
self.updateSupportedOrientations?()
|
||||
|
||||
let updatedPrefersOnScreenNavigationHidden = self.collectPrefersOnScreenNavigationHidden()
|
||||
if initialPrefersOnScreenNavigationHidden != updatedPrefersOnScreenNavigationHidden {
|
||||
self.currentWindow?.invalidatePrefersOnScreenNavigationHidden()
|
||||
}
|
||||
}
|
||||
|
||||
private func controllerRemoved(_ controller: ViewController) {
|
||||
@ -1184,7 +1191,7 @@ open class NavigationController: UINavigationController, ContainableController,
|
||||
if overlayContainer.controller === controller {
|
||||
overlayContainer.removeFromSupernode()
|
||||
strongSelf.globalOverlayContainers.remove(at: i)
|
||||
strongSelf.globalOverlayControllersUpdated?()
|
||||
strongSelf.internalGlobalOverlayControllersUpdated()
|
||||
break
|
||||
}
|
||||
}
|
||||
@ -1194,6 +1201,7 @@ open class NavigationController: UINavigationController, ContainableController,
|
||||
if overlayContainer.controller === controller {
|
||||
overlayContainer.removeFromSupernode()
|
||||
strongSelf.overlayContainers.remove(at: i)
|
||||
strongSelf.internalOverlayControllersUpdated()
|
||||
break
|
||||
}
|
||||
}
|
||||
@ -1395,4 +1403,21 @@ open class NavigationController: UINavigationController, ContainableController,
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
private func internalGlobalOverlayControllersUpdated() {
|
||||
self.globalOverlayControllersUpdated?()
|
||||
self.currentWindow?.invalidatePrefersOnScreenNavigationHidden()
|
||||
}
|
||||
|
||||
private func internalOverlayControllersUpdated() {
|
||||
self.currentWindow?.invalidatePrefersOnScreenNavigationHidden()
|
||||
}
|
||||
|
||||
private func collectPrefersOnScreenNavigationHidden() -> Bool {
|
||||
var hidden = false
|
||||
if let overlayController = self.topOverlayController {
|
||||
hidden = hidden || overlayController.prefersOnScreenNavigationHidden
|
||||
}
|
||||
return hidden
|
||||
}
|
||||
}
|
||||
|
Loading…
x
Reference in New Issue
Block a user