Various fixes

This commit is contained in:
Ilya Laktyushin
2024-07-26 17:29:12 +02:00
parent 7f29c3e95c
commit 8e219193d0
7 changed files with 191 additions and 38 deletions

View File

@@ -775,12 +775,18 @@ public class BrowserScreen: ViewController, MinimizableController {
self.presentationState = f(self.presentationState)
self.requestLayout(transition: transition)
}
func pushContent(_ content: BrowserScreen.Subject, transition: ComponentTransition) {
let browserContent: BrowserContent
switch content {
case let .webPage(url):
browserContent = BrowserWebContent(context: self.context, presentationData: self.presentationData, url: url)
let webContent = BrowserWebContent(context: self.context, presentationData: self.presentationData, url: url)
webContent.cancelInteractiveTransitionGestures = { [weak self] in
if let self, let view = self.controller?.view {
cancelInteractiveTransitionGestures(view: view)
}
}
browserContent = webContent
case let .instantPage(webPage, anchor, sourceLocation):
let instantPageContent = BrowserInstantPageContent(context: self.context, presentationData: self.presentationData, webPage: webPage, anchor: anchor, url: webPage.content.url ?? "", sourceLocation: sourceLocation)
instantPageContent.openPeer = { [weak self] peer in
@@ -1582,3 +1588,19 @@ private final class BrowserContentComponent: Component {
return view.update(component: self, availableSize: availableSize, transition: transition)
}
}
private func cancelInteractiveTransitionGestures(view: UIView) {
if let gestureRecognizers = view.gestureRecognizers {
for gesture in gestureRecognizers {
if let gesture = gesture as? InteractiveTransitionGestureRecognizer {
gesture.cancel()
} else if let scrollView = gesture.view as? UIScrollView, gesture.isEnabled, scrollView.tag == 0x5C4011 {
gesture.isEnabled = false
gesture.isEnabled = true
}
}
}
if let superview = view.superview {
cancelInteractiveTransitionGestures(view: superview)
}
}