diff --git a/Telegram/SourceFiles/apiwrap.cpp b/Telegram/SourceFiles/apiwrap.cpp index 70b2b3b375..a88097c104 100644 --- a/Telegram/SourceFiles/apiwrap.cpp +++ b/Telegram/SourceFiles/apiwrap.cpp @@ -4472,22 +4472,19 @@ void ApiWrap::editMedia( SendMediaType type, TextWithTags &&caption, const SendOptions &options) { - LOG(("EDIT MEDIA WITH TEXT %1").arg(caption.text)); + if (list.files.empty()) return; + + auto &file = list.files.front(); const auto to = fileLoadTaskOptions(options); - auto tasks = std::vector>(); - tasks.reserve(list.files.size()); - for (auto &file : list.files) { - tasks.push_back(std::make_unique( - file.path, - file.content, - std::move(file.information), - type, - to, - caption, - nullptr, - true)); - } - _fileLoader->addTasks(std::move(tasks)); + _fileLoader->addTask(std::make_unique( + file.path, + file.content, + std::move(file.information), + type, + to, + caption, + nullptr, + true)); } void ApiWrap::sendFiles( diff --git a/Telegram/SourceFiles/app.cpp b/Telegram/SourceFiles/app.cpp index 056dd54927..16f7ac0d68 100644 --- a/Telegram/SourceFiles/app.cpp +++ b/Telegram/SourceFiles/app.cpp @@ -139,7 +139,6 @@ namespace App { auto entities = m.has_entities() ? TextUtilities::EntitiesFromMTP(m.ventities.v) : EntitiesInText(); - const auto media = m.has_media() ? &m.vmedia : nullptr; existing->setText({ text, entities }); existing->updateSentMedia(m.has_media() ? &m.vmedia : nullptr); existing->updateReplyMarkup(m.has_reply_markup() diff --git a/Telegram/SourceFiles/history/history_item.h b/Telegram/SourceFiles/history/history_item.h index 55f37d8525..3a693ef1d6 100644 --- a/Telegram/SourceFiles/history/history_item.h +++ b/Telegram/SourceFiles/history/history_item.h @@ -132,7 +132,10 @@ public: // For edit media in history_message. virtual void returnSavedMedia() {}; - virtual void clearSavedMedia() {}; + void clearSavedMedia() { + _isEditingMedia = false; + _savedMedia = nullptr; + } // Zero result means this message is not self-destructing right now. virtual crl::time getSelfDestructIn(crl::time now) { diff --git a/Telegram/SourceFiles/history/history_message.cpp b/Telegram/SourceFiles/history/history_message.cpp index 9f570e826c..63258e1bf5 100644 --- a/Telegram/SourceFiles/history/history_message.cpp +++ b/Telegram/SourceFiles/history/history_message.cpp @@ -955,14 +955,12 @@ void HistoryMessage::updateSentMedia(const MTPMessageMedia *media) { } _flags &= ~MTPDmessage_ClientFlag::f_from_inline_bot; } else { - const auto shouldUpdate = _isEditingMedia ? true : !_media->updateSentMedia(*media); if (_isEditingMedia) { _savedMedia = _media->clone(this); - } - if (!media || !_media || shouldUpdate) { + refreshSentMedia(media); + } else if (!media || !_media || !_media->updateSentMedia(*media)) { refreshSentMedia(media); } - // _isEditingMedia = false; } history()->owner().requestItemResize(this); } diff --git a/Telegram/SourceFiles/history/history_message.h b/Telegram/SourceFiles/history/history_message.h index 4ebba7c025..036ad4bff6 100644 --- a/Telegram/SourceFiles/history/history_message.h +++ b/Telegram/SourceFiles/history/history_message.h @@ -90,9 +90,6 @@ public: void refreshMedia(const MTPMessageMedia *media); void refreshSentMedia(const MTPMessageMedia *media); void returnSavedMedia() override; - void clearSavedMedia() { - _savedMedia = nullptr; - } void setMedia(const MTPMessageMedia &media); static std::unique_ptr CreateMedia( not_null item,