diff --git a/submodules/AttachmentUI/Sources/AttachmentContainer.swift b/submodules/AttachmentUI/Sources/AttachmentContainer.swift index 1b4aaaca62..bf9228a777 100644 --- a/submodules/AttachmentUI/Sources/AttachmentContainer.swift +++ b/submodules/AttachmentUI/Sources/AttachmentContainer.swift @@ -419,7 +419,10 @@ final class AttachmentContainer: ASDisplayNode, UIGestureRecognizerDelegate { intrinsicInsets.left += overflowInset intrinsicInsets.right += overflowInset - containerLayout = ContainerViewLayout(size: CGSize(width: layout.size.width + overflowInset * 2.0, height: layout.size.height - containerTopInset), metrics: layout.metrics, deviceMetrics: layout.deviceMetrics, intrinsicInsets: UIEdgeInsets(top: 0.0, left: intrinsicInsets.left, bottom: intrinsicInsets.bottom, right: intrinsicInsets.right), safeInsets: UIEdgeInsets(top: 0.0, left: safeInsets.left, bottom: safeInsets.bottom, right: safeInsets.right), additionalInsets: layout.additionalInsets, statusBarHeight: effectiveStatusBarHeight, inputHeight: layout.inputHeight, inputHeightIsInteractivellyChanging: layout.inputHeightIsInteractivellyChanging, inVoiceOver: layout.inVoiceOver) + var additionalInsets = layout.additionalInsets + additionalInsets.bottom = topInset + + containerLayout = ContainerViewLayout(size: CGSize(width: layout.size.width + overflowInset * 2.0, height: layout.size.height - containerTopInset), metrics: layout.metrics, deviceMetrics: layout.deviceMetrics, intrinsicInsets: UIEdgeInsets(top: 0.0, left: intrinsicInsets.left, bottom: intrinsicInsets.bottom, right: intrinsicInsets.right), safeInsets: UIEdgeInsets(top: 0.0, left: safeInsets.left, bottom: safeInsets.bottom, right: safeInsets.right), additionalInsets: additionalInsets, statusBarHeight: effectiveStatusBarHeight, inputHeight: layout.inputHeight, inputHeightIsInteractivellyChanging: layout.inputHeightIsInteractivellyChanging, inVoiceOver: layout.inVoiceOver) let unscaledFrame = CGRect(origin: CGPoint(x: 0.0, y: containerTopInset - coveredByModalTransition * 10.0), size: containerLayout.size) let maxScale: CGFloat = (containerLayout.size.width - 16.0 * 2.0) / containerLayout.size.width containerScale = 1.0 * (1.0 - coveredByModalTransition) + maxScale * coveredByModalTransition diff --git a/submodules/Display/Source/WindowContent.swift b/submodules/Display/Source/WindowContent.swift index 02c9ab65ea..82b0b44a1c 100644 --- a/submodules/Display/Source/WindowContent.swift +++ b/submodules/Display/Source/WindowContent.swift @@ -699,7 +699,7 @@ public class Window1 { if self.isInteractionBlocked { return nil } - + if let result = self.topPresentationContext.hitTest(view: self.hostView.containerView, point: point, with: event) { return result } @@ -709,7 +709,8 @@ public class Window1 { } for view in self.hostView.eventView.subviews.reversed() { - if NSStringFromClass(type(of: view)) == "UITransitionView" { + let classString = NSStringFromClass(type(of: view)) + if classString == "UITransitionView" || classString.contains("ContextMenuContainerView") { if let result = view.hitTest(point, with: event) { return result } diff --git a/submodules/WebUI/Sources/WebAppController.swift b/submodules/WebUI/Sources/WebAppController.swift index b4a1b0deee..1b1a24710e 100644 --- a/submodules/WebUI/Sources/WebAppController.swift +++ b/submodules/WebUI/Sources/WebAppController.swift @@ -163,8 +163,8 @@ public final class WebAppController: ViewController, AttachmentContainable { strongSelf.handleScriptMessage(message) } }, name: "performAction") - - let selectionString = "var css = '*{-webkit-touch-callout:none;-webkit-user-select:none}';" + //-webkit-user-select:none + let selectionString = "var css = '*{-webkit-touch-callout:none;}';" + " var head = document.head || document.getElementsByTagName('head')[0];" + " var style = document.createElement('style'); style.type = 'text/css';" + " style.appendChild(document.createTextNode(css)); head.appendChild(style);" @@ -200,6 +200,7 @@ public final class WebAppController: ViewController, AttachmentContainable { webView.allowsBackForwardNavigationGestures = false webView.scrollView.delegate = self webView.addObserver(self, forKeyPath: #keyPath(WKWebView.estimatedProgress), options: [], context: nil) + webView.tintColor = self.presentationData.theme.rootController.tabBar.iconColor self.webView = webView let placeholderNode = ShimmerEffectNode() @@ -289,7 +290,7 @@ public final class WebAppController: ViewController, AttachmentContainable { return } self.view.addSubview(webView) - + if #available(iOS 11.0, *) { let webScrollView = webView.subviews.compactMap { $0 as? UIScrollView }.first Queue.mainQueue().after(0.1, { @@ -314,7 +315,7 @@ public final class WebAppController: ViewController, AttachmentContainable { func webView(_ webView: WKWebView, didStartProvisionalNavigation navigation: WKNavigation!) { self.loadCount += 1 } - + func webView(_ webView: WKWebView, didFinish navigation: WKNavigation!) { self.loadCount -= 1 @@ -339,7 +340,10 @@ public final class WebAppController: ViewController, AttachmentContainable { func containerLayoutUpdated(_ layout: ContainerViewLayout, navigationBarHeight: CGFloat, transition: ContainedViewLayoutTransition) { if let webView = self.webView { - webView.frame = CGRect(origin: CGPoint(x: layout.safeInsets.left, y: navigationBarHeight), size: CGSize(width: layout.size.width - layout.safeInsets.left - layout.safeInsets.right, height: max(1.0, layout.size.height - navigationBarHeight - layout.intrinsicInsets.bottom))) + transition.updateFrame(view: webView, frame: CGRect(origin: CGPoint(x: layout.safeInsets.left, y: navigationBarHeight), size: CGSize(width: layout.size.width - layout.safeInsets.left - layout.safeInsets.right, height: max(1.0, layout.size.height - navigationBarHeight - layout.intrinsicInsets.bottom - layout.additionalInsets.bottom)))) + if case .immediate = transition { + webView.layoutSubviews() + } } if let placeholderNode = self.placeholderNode { @@ -347,7 +351,7 @@ public final class WebAppController: ViewController, AttachmentContainable { let height: CGFloat if case .compact = layout.metrics.widthClass { - height = layout.size.height - attachmentDefaultTopInset(layout: layout) - layout.intrinsicInsets.bottom - 14.0 + height = layout.size.height - layout.additionalInsets.bottom - layout.intrinsicInsets.bottom } else { height = layout.size.height - layout.intrinsicInsets.bottom }