From 7f969e51021d2a11fa4d5ee996c321ba79be025e Mon Sep 17 00:00:00 2001 From: John Preston Date: Tue, 27 Dec 2022 11:49:03 +0400 Subject: [PATCH] Fix forwarding to General topic. --- Telegram/SourceFiles/apiwrap.cpp | 10 +++++++--- Telegram/SourceFiles/boxes/share_box.cpp | 11 ++++++++--- 2 files changed, 15 insertions(+), 6 deletions(-) diff --git a/Telegram/SourceFiles/apiwrap.cpp b/Telegram/SourceFiles/apiwrap.cpp index 30ca85237..f43d29808 100644 --- a/Telegram/SourceFiles/apiwrap.cpp +++ b/Telegram/SourceFiles/apiwrap.cpp @@ -3157,7 +3157,11 @@ void ApiWrap::forwardMessages( if (sendAs) { sendFlags |= MTPmessages_ForwardMessages::Flag::f_send_as; } - if (action.topicRootId) { + const auto kGeneralId = Data::ForumTopic::kGeneralId; + const auto topMsgId = (action.topicRootId == kGeneralId) + ? MsgId(0) + : action.topicRootId; + if (topMsgId) { sendFlags |= MTPmessages_ForwardMessages::Flag::f_top_msg_id; } @@ -3179,7 +3183,7 @@ void ApiWrap::forwardMessages( MTP_vector(ids), MTP_vector(randomIds), peer->input, - MTP_int(action.topicRootId), + MTP_int(topMsgId), MTP_int(action.options.scheduled), (sendAs ? sendAs->input : MTP_inputPeerEmpty()) )).done([=](const MTPUpdates &result) { @@ -3232,7 +3236,7 @@ void ApiWrap::forwardMessages( messageFromId, messagePostAuthor, item, - action.topicRootId); + topMsgId); _session->data().registerMessageRandomId(randomId, newId); if (!localIds) { localIds = std::make_shared>(); diff --git a/Telegram/SourceFiles/boxes/share_box.cpp b/Telegram/SourceFiles/boxes/share_box.cpp index 3e8f33765..f4db17383 100644 --- a/Telegram/SourceFiles/boxes/share_box.cpp +++ b/Telegram/SourceFiles/boxes/share_box.cpp @@ -1403,11 +1403,16 @@ ShareBox::SubmitCallback ShareBox::DefaultForwardCallback( api.sendMessage(std::move(message)); } const auto topicRootId = thread->topicRootId(); + const auto kGeneralId = Data::ForumTopic::kGeneralId; + const auto topMsgId = (topicRootId == kGeneralId) + ? MsgId(0) + : topicRootId; const auto peer = thread->peer(); - histories.sendRequest(history, requestType, [=](Fn finish) { + histories.sendRequest(history, requestType, [=]( + Fn finish) { auto &api = history->session().api(); const auto sendFlags = commonSendFlags - | (topicRootId ? Flag::f_top_msg_id : Flag(0)) + | (topMsgId ? Flag::f_top_msg_id : Flag(0)) | (ShouldSendSilent(peer, options) ? Flag::f_silent : Flag(0)); @@ -1418,7 +1423,7 @@ ShareBox::SubmitCallback ShareBox::DefaultForwardCallback( MTP_vector(mtpMsgIds), MTP_vector(generateRandom()), peer->input, - MTP_int(topicRootId), + MTP_int(topMsgId), MTP_int(options.scheduled), MTP_inputPeerEmpty() // send_as )).done([=](const MTPUpdates &updates, mtpRequestId reqId) {