From ddd336bc8fe55b9356bdb8dbbe6250ee5e9f8446 Mon Sep 17 00:00:00 2001 From: Ilya Laktyushin Date: Tue, 3 Mar 2026 19:26:10 +0400 Subject: [PATCH] Various fixes --- submodules/TelegramUI/Sources/ChatController.swift | 4 +++- .../Sources/ChatPinnedMessageTitlePanelNode.swift | 13 +++++++++++++ 2 files changed, 16 insertions(+), 1 deletion(-) diff --git a/submodules/TelegramUI/Sources/ChatController.swift b/submodules/TelegramUI/Sources/ChatController.swift index 20a8925e0f..329fe46866 100644 --- a/submodules/TelegramUI/Sources/ChatController.swift +++ b/submodules/TelegramUI/Sources/ChatController.swift @@ -3067,8 +3067,10 @@ public final class ChatControllerImpl: TelegramBaseController, ChatController, G var skipConcealedAlert = false if let author = message?.author, author.isVerified { skipConcealedAlert = true + } else if let forwardInfo = message?.forwardInfo, let author = forwardInfo.author, author.isVerified { + skipConcealedAlert = true } - + if let message, let adAttribute = message.attributes.first(where: { $0 is AdMessageAttribute }) as? AdMessageAttribute { strongSelf.chatDisplayNode.adMessagesContext?.markAction(opaqueId: adAttribute.opaqueId, media: false, fullscreen: false) } diff --git a/submodules/TelegramUI/Sources/ChatPinnedMessageTitlePanelNode.swift b/submodules/TelegramUI/Sources/ChatPinnedMessageTitlePanelNode.swift index 5f5f9f17ab..87181921ff 100644 --- a/submodules/TelegramUI/Sources/ChatPinnedMessageTitlePanelNode.swift +++ b/submodules/TelegramUI/Sources/ChatPinnedMessageTitlePanelNode.swift @@ -24,6 +24,7 @@ import MultiAnimationRenderer import TranslateUI import ChatControllerInteraction import LegacyChatHeaderPanelComponent +import UIKitRuntimeUtils private enum PinnedMessageAnimation { case slideToTop @@ -86,6 +87,16 @@ final class ChatPinnedMessageTitlePanelNode: ChatTitleAccessoryPanelNode { private let queue = Queue() + private var captureProtected: Bool = false { + didSet { + if self.captureProtected != oldValue { + if self.isNodeLoaded { + setLayerDisableScreenshots(self.contentContainer.layer, self.captureProtected) + } + } + } + } + override func hitTest(_ point: CGPoint, with event: UIEvent?) -> UIView? { if let buttonResult = self.buttonsContainer.hitTest(point.offsetBy(dx: -self.buttonsContainer.frame.minX, dy: -self.buttonsContainer.frame.minY), with: event) { return buttonResult @@ -281,6 +292,8 @@ final class ChatPinnedMessageTitlePanelNode: ChatTitleAccessoryPanelNode { } self.isReplyThread = isReplyThread + self.captureProtected = interfaceState.copyProtectionEnabled || interfaceState.myCopyProtectionEnabled + self.contextContainer.isGestureEnabled = !isReplyThread var actionTitle: String?