Various fixes

This commit is contained in:
Ilya Laktyushin 2025-05-25 14:34:07 +02:00
parent 76246efb5d
commit bf15144237
2 changed files with 9 additions and 7 deletions

View File

@ -858,15 +858,17 @@ public final class WebAppController: ViewController, AttachmentContainable {
} }
if previousLayout != nil && (previousLayout?.inputHeight ?? 0.0).isZero, let inputHeight = layout.inputHeight, inputHeight > 44.0, transition.isAnimated { if previousLayout != nil && (previousLayout?.inputHeight ?? 0.0).isZero, let inputHeight = layout.inputHeight, inputHeight > 44.0, transition.isAnimated {
webView.scrollToActiveElement(layout: layout, completion: { [weak self] contentOffset in
self?.targetContentOffset = contentOffset
}, transition: transition)
Queue.mainQueue().after(0.4, { Queue.mainQueue().after(0.4, {
if let inputHeight = self.validLayout?.0.inputHeight, inputHeight > 44.0 { if let inputHeight = self.validLayout?.0.inputHeight, inputHeight > 44.0 {
webView.scrollToActiveElement(layout: layout, completion: { [weak self] contentOffset in
let _ = self
// self?.targetContentOffset = contentOffset
}, transition: transition)
transition.updateFrame(view: webView, frame: webViewFrame) transition.updateFrame(view: webView, frame: webViewFrame)
Queue.mainQueue().after(0.1) { // Queue.mainQueue().after(0.1) {
self.targetContentOffset = nil // self.targetContentOffset = nil
} // }
} }
}) })
} else { } else {

View File

@ -249,7 +249,7 @@ final class WebAppWebView: WKWebView {
if let result = result as? CGFloat { if let result = result as? CGFloat {
Queue.mainQueue().async { Queue.mainQueue().async {
let convertedY = result - self.scrollView.contentOffset.y let convertedY = result - self.scrollView.contentOffset.y
let viewportHeight = self.frame.height - (layout.inputHeight ?? 0.0) + 26.0 let viewportHeight = self.frame.height
if convertedY < 0.0 || (convertedY + 44.0) > viewportHeight { if convertedY < 0.0 || (convertedY + 44.0) > viewportHeight {
let targetOffset: CGFloat let targetOffset: CGFloat
if convertedY < 0.0 { if convertedY < 0.0 {