From 46de86f1e48ed6e9c1e37277204bf6b3f29afaee Mon Sep 17 00:00:00 2001
From: RadRussianRus <radrussianrus@gmail.com>
Date: Sun, 26 Jan 2020 05:50:52 +0300
Subject: [PATCH] Fix opening private linked channel from message

---
 Telegram/SourceFiles/data/data_peer.cpp | 8 ++++++--
 1 file changed, 6 insertions(+), 2 deletions(-)

diff --git a/Telegram/SourceFiles/data/data_peer.cpp b/Telegram/SourceFiles/data/data_peer.cpp
index 4daba8a11..41f158c67 100644
--- a/Telegram/SourceFiles/data/data_peer.cpp
+++ b/Telegram/SourceFiles/data/data_peer.cpp
@@ -85,10 +85,14 @@ PeerClickHandler::PeerClickHandler(not_null<PeerData*> peer)
 void PeerClickHandler::onClick(ClickContext context) const {
 	if (context.button == Qt::LeftButton && App::wnd()) {
 		const auto controller = App::wnd()->sessionController();
+		const auto currentPeer = controller->activeChatCurrent().peer();
 		if (_peer
 			&& _peer->isChannel()
-			&& controller->activeChatCurrent().peer() != _peer) {
-			if (!_peer->asChannel()->isPublic() && !_peer->asChannel()->amIn()) {
+			&& currentPeer != _peer) {
+			const auto clickedChannel = _peer->asChannel();
+			if (!clickedChannel->isPublic() && !clickedChannel->amIn()
+				&& (!currentPeer->isChannel()
+					|| currentPeer->asChannel()->linkedChat() != clickedChannel)) {
 				Ui::show(Box<InformBox>(_peer->isMegagroup()
 					? tr::lng_group_not_accessible(tr::now)
 					: tr::lng_channel_not_accessible(tr::now)));