diff --git a/Telegram/SourceFiles/history/history_item.h b/Telegram/SourceFiles/history/history_item.h index 21b241ad4..6a9a5a4e8 100644 --- a/Telegram/SourceFiles/history/history_item.h +++ b/Telegram/SourceFiles/history/history_item.h @@ -122,6 +122,10 @@ public: bool hasUnreadMediaFlag() const; void markMediaRead(); + void setIsEditingMedia(bool edit) { + _isEditingMedia = edit; + } + // Zero result means this message is not self-destructing right now. virtual crl::time getSelfDestructIn(crl::time now) { return 0; @@ -310,6 +314,7 @@ protected: int _textWidth = -1; int _textHeight = 0; + bool _isEditingMedia = false; std::unique_ptr _media; private: diff --git a/Telegram/SourceFiles/history/history_message.cpp b/Telegram/SourceFiles/history/history_message.cpp index d5c76f34d..964feb0ad 100644 --- a/Telegram/SourceFiles/history/history_message.cpp +++ b/Telegram/SourceFiles/history/history_message.cpp @@ -942,9 +942,11 @@ void HistoryMessage::updateSentMedia(const MTPMessageMedia *media) { } _flags &= ~MTPDmessage_ClientFlag::f_from_inline_bot; } else { - if (!media || !_media || !_media->updateSentMedia(*media)) { + const auto shouldUpdate = _isEditingMedia ? true : !_media->updateSentMedia(*media); + if (!media || !_media || shouldUpdate) { refreshSentMedia(media); } + _isEditingMedia = false; } history()->owner().requestItemResize(this); } diff --git a/Telegram/SourceFiles/history/history_widget.cpp b/Telegram/SourceFiles/history/history_widget.cpp index 13c389dd9..4273c4886 100644 --- a/Telegram/SourceFiles/history/history_widget.cpp +++ b/Telegram/SourceFiles/history/history_widget.cpp @@ -4290,6 +4290,11 @@ void HistoryWidget::sendFileConfirmed( const auto messageType = isEditing ? NewMessageExisting : NewMessageUnread; + if (isEditing) { + if (const auto itemToEdit = App::histItemById(newId)) { + itemToEdit->setIsEditingMedia(true); + } + } if (file->type == SendMediaType::Photo) { auto photoFlags = MTPDmessageMediaPhoto::Flag::f_photo | 0; auto photo = MTP_messageMediaPhoto(