mirror of
https://github.com/telegramdesktop/tdesktop
synced 2025-03-31 07:52:06 +00:00
Fix sending messages with links.
This commit is contained in:
parent
39a80e9de7
commit
f0ed5640db
@ -391,7 +391,7 @@ MainWidget::MainWidget(
|
||||
) | rpl::start_with_next([=](const Media::Player::TrackState &state) {
|
||||
handleAudioUpdate(state);
|
||||
}, lifetime());
|
||||
|
||||
|
||||
subscribe(session().calls().currentCallChanged(), [this](Calls::Call *call) { setCurrentCall(call); });
|
||||
|
||||
session().data().currentExportView(
|
||||
@ -3784,30 +3784,31 @@ void MainWidget::feedUpdates(const MTPUpdates &updates, uint64 randomId) {
|
||||
if (!IsServerMsgId(d.vid.v)) {
|
||||
LOG(("API Error: Bad msgId got from server: %1").arg(d.vid.v));
|
||||
} else if (randomId) {
|
||||
PeerId peerId = 0;
|
||||
QString text;
|
||||
session().data().registerMessageSentData(randomId, peerId, text);
|
||||
|
||||
const auto wasAlready = (peerId != 0)
|
||||
&& (session().data().message(peerToChannel(peerId), d.vid.v) != nullptr);
|
||||
const auto sent = session().data().messageSentData(randomId);
|
||||
const auto lookupMessage = [&] {
|
||||
return sent.peerId
|
||||
? session().data().message(
|
||||
peerToChannel(sent.peerId),
|
||||
d.vid.v)
|
||||
: nullptr;
|
||||
};
|
||||
const auto wasAlready = (lookupMessage() != nullptr);
|
||||
feedUpdate(MTP_updateMessageID(d.vid, MTP_long(randomId))); // ignore real date
|
||||
if (peerId) {
|
||||
if (auto item = session().data().message(peerToChannel(peerId), d.vid.v)) {
|
||||
if (d.has_entities() && !MentionUsersLoaded(&session(), d.ventities)) {
|
||||
session().api().requestMessageData(
|
||||
item->history()->peer->asChannel(),
|
||||
item->id,
|
||||
ApiWrap::RequestMessageDataCallback());
|
||||
}
|
||||
const auto entities = d.has_entities()
|
||||
? TextUtilities::EntitiesFromMTP(d.ventities.v)
|
||||
: EntitiesInText();
|
||||
const auto media = d.has_media() ? &d.vmedia : nullptr;
|
||||
item->setText({ text, entities });
|
||||
item->updateSentMedia(media);
|
||||
if (!wasAlready) {
|
||||
item->indexAsNewItem();
|
||||
}
|
||||
if (const auto item = lookupMessage()) {
|
||||
if (d.has_entities() && !MentionUsersLoaded(&session(), d.ventities)) {
|
||||
session().api().requestMessageData(
|
||||
item->history()->peer->asChannel(),
|
||||
item->id,
|
||||
ApiWrap::RequestMessageDataCallback());
|
||||
}
|
||||
const auto entities = d.has_entities()
|
||||
? TextUtilities::EntitiesFromMTP(d.ventities.v)
|
||||
: EntitiesInText();
|
||||
const auto media = d.has_media() ? &d.vmedia : nullptr;
|
||||
item->setText({ sent.text, entities });
|
||||
item->updateSentMedia(media);
|
||||
if (!wasAlready) {
|
||||
item->indexAsNewItem();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user