diff --git a/Telegram/SourceFiles/window/window_session_controller.cpp b/Telegram/SourceFiles/window/window_session_controller.cpp index 4760afc6d3..bbaaaa95bb 100644 --- a/Telegram/SourceFiles/window/window_session_controller.cpp +++ b/Telegram/SourceFiles/window/window_session_controller.cpp @@ -675,22 +675,6 @@ void SessionNavigation::showPeerByLinkResolved( showPeerInfo(peer, params); } else if (resolveType == ResolveType::HashtagSearch) { searchMessages(info.text, peer->owner().history(peer)); - } else if (peer->isForum() && resolveType != ResolveType::Boost) { - if (!msgId || !useRequestedMessageId) { - applyBotStartToken(); - parentController()->showForum(peer->forum(), params, msgId); - } else if (const auto item = peer->owner().message(peer, msgId)) { - showMessageByLinkResolved(item, info); - } else { - const auto callback = crl::guard(this, [=] { - if (const auto item = peer->owner().message(peer, msgId)) { - showMessageByLinkResolved(item, info); - } else { - showPeerHistory(peer, params, msgId); - } - }); - peer->session().api().requestMessageData(peer, msgId, callback); - } } else if (info.storyParam == u"live"_q) { parentController()->openPeerStories(peer->id, std::nullopt, true); } else if (const auto storyId = info.storyParam.toInt()) { @@ -754,6 +738,24 @@ void SessionNavigation::showPeerByLinkResolved( scope, info.startToken, info.startAdminRights); + } else if (resolveType == ResolveType::Boost && peer->isChannel()) { + resolveBoostState(peer->asChannel()); + } else if (peer->isForum()) { + if (!msgId || !useRequestedMessageId) { + applyBotStartToken(); + parentController()->showForum(peer->forum(), params, msgId); + } else if (const auto item = peer->owner().message(peer, msgId)) { + showMessageByLinkResolved(item, info); + } else { + const auto callback = crl::guard(this, [=] { + if (const auto item = peer->owner().message(peer, msgId)) { + showMessageByLinkResolved(item, info); + } else { + showPeerHistory(peer, params, msgId); + } + }); + peer->session().api().requestMessageData(peer, msgId, callback); + } } else if (resolveType == ResolveType::Mention) { if (bot || peer->isChannel()) { crl::on_main(this, [=] { @@ -762,8 +764,6 @@ void SessionNavigation::showPeerByLinkResolved( } else { showPeerInfo(peer, params); } - } else if (resolveType == ResolveType::Boost && peer->isChannel()) { - resolveBoostState(peer->asChannel()); } else if (resolveType == ResolveType::ChannelDirect && !peer->isFullLoaded()) { _waitingDirectChannel = peer;