From e8a8bb1496e6df4ebe3add17655ee347992bba5f Mon Sep 17 00:00:00 2001 From: Lev Poznyakov <62802017+levochkaa@users.noreply.github.com> Date: Sun, 7 Jul 2024 23:27:46 +0300 Subject: [PATCH] Fix input panel hidden on selection (#31) * added if check for selectionState != nil * same order of subnodes --- submodules/TelegramUI/Sources/ChatControllerNode.swift | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/submodules/TelegramUI/Sources/ChatControllerNode.swift b/submodules/TelegramUI/Sources/ChatControllerNode.swift index 53814f574b..381c94d810 100644 --- a/submodules/TelegramUI/Sources/ChatControllerNode.swift +++ b/submodules/TelegramUI/Sources/ChatControllerNode.swift @@ -1458,14 +1458,18 @@ class ChatControllerNode: ASDisplayNode, ASScrollViewDelegate { // MARK: Swiftgram var inputPanelNodes = inputPanelForChatPresentationIntefaceState(self.chatPresentationInterfaceState, context: self.context, currentPanel: self.inputPanelNode, currentSecondaryPanel: self.secondaryInputPanelNode, textInputPanelNode: self.textInputPanelNode, interfaceInteraction: self.interfaceInteraction) - if (inputPanelNodes.primary != nil || inputPanelNodes.secondary != nil) && SGSimpleSettings.shared.hideChannelBottomButton { + if self.chatPresentationInterfaceState.interfaceState.selectionState != nil { + self.inputPanelClippingNode.addSubnode(self.inputPanelBackgroundNode) + self.inputPanelClippingNode.addSubnode(self.inputPanelBackgroundSeparatorNode) + self.inputPanelBackgroundNode.addSubnode(self.inputPanelBottomBackgroundSeparatorNode) + } else if (inputPanelNodes.primary != nil || inputPanelNodes.secondary != nil) && SGSimpleSettings.shared.hideChannelBottomButton { // So there should be some panel, but user don't want it. Let's check if our logic will hide it inputPanelNodes = inputPanelForChatPresentationIntefaceState(self.chatPresentationInterfaceState, context: self.context, currentPanel: self.inputPanelNode, currentSecondaryPanel: self.secondaryInputPanelNode, textInputPanelNode: self.textInputPanelNode, interfaceInteraction: self.interfaceInteraction, forceHideChannelButton: true) if inputPanelNodes.primary == nil && inputPanelNodes.secondary == nil { // Looks like we're eligible to hide the panel, let's remove safe area fill as well + self.inputPanelBackgroundNode.removeFromSupernode() self.inputPanelBackgroundSeparatorNode.removeFromSupernode() self.inputPanelBottomBackgroundSeparatorNode.removeFromSupernode() - self.inputPanelBackgroundNode.removeFromSupernode() } }