From 5dcca4482a9a3bbc2935328a2b587d71bf249e22 Mon Sep 17 00:00:00 2001 From: John Preston Date: Thu, 17 Aug 2023 11:40:04 +0200 Subject: [PATCH] Fix copying photo while it is done uploading. Fixes #26669. --- .../history/history_inner_widget.cpp | 20 +++++++++++++------ 1 file changed, 14 insertions(+), 6 deletions(-) diff --git a/Telegram/SourceFiles/history/history_inner_widget.cpp b/Telegram/SourceFiles/history/history_inner_widget.cpp index 2f1dabec2..f5c2058f5 100644 --- a/Telegram/SourceFiles/history/history_inner_widget.cpp +++ b/Telegram/SourceFiles/history/history_inner_widget.cpp @@ -2399,11 +2399,16 @@ void HistoryInner::showContextMenu(QContextMenuEvent *e, bool showFromTouch) { }, &st::menuIconForward); } if (item->canDelete()) { - _menu->addAction(Ui::DeleteMessageContextAction( - _menu->menu(), - [=] { deleteItem(itemId); }, - item->ttlDestroyAt(), - [=] { _menu = nullptr; })); + const auto callback = [=] { deleteItem(itemId); }; + if (item->isUploading()) { + _menu->addAction(tr::lng_context_cancel_upload(tr::now), callback, &st::menuIconCancel); + } else { + _menu->addAction(Ui::DeleteMessageContextAction( + _menu->menu(), + callback, + item->ttlDestroyAt(), + [=] { _menu = nullptr; })); + } } if (!blockSender && item->suggestReport()) { _menu->addAction(tr::lng_context_report_msg(tr::now), [=] { @@ -2744,9 +2749,12 @@ void HistoryInner::copyContextImage( FullMsgId itemId) { const auto item = session().data().message(itemId); const auto media = photo->activeMediaView(); + const auto restricted = item + ? showCopyMediaRestriction(item) + : IsServerMsgId(itemId.msg); if (photo->isNull() || !media || !media->loaded()) { return; - } else if (!showCopyMediaRestriction(item)) { + } else if (!restricted) { media->setToClipboard(); } }