From ef10bb2bd65ab02515b80c011f7d6848f5e733c5 Mon Sep 17 00:00:00 2001 From: 23rd <23rd@vivaldi.net> Date: Fri, 8 Oct 2021 04:55:55 +0300 Subject: [PATCH] Fixed editing caption of album from context menu. Fixed #17077. --- .../view/media/history_view_media_grouped.cpp | 13 +++++++++---- .../history/view/media/history_view_media_grouped.h | 1 + 2 files changed, 10 insertions(+), 4 deletions(-) diff --git a/Telegram/SourceFiles/history/view/media/history_view_media_grouped.cpp b/Telegram/SourceFiles/history/view/media/history_view_media_grouped.cpp index 17db7e446a..e1eca77aae 100644 --- a/Telegram/SourceFiles/history/view/media/history_view_media_grouped.cpp +++ b/Telegram/SourceFiles/history/view/media/history_view_media_grouped.cpp @@ -408,10 +408,14 @@ TextState GroupedMedia::textState(QPoint point, StateRequest request) const { - (isBubbleBottom() ? st::msgPadding.bottom() : 0) - _caption.countHeight(captionw); if (QRect(st::msgPadding.left(), captiony, captionw, height() - captiony).contains(point)) { - return TextState(_parent->data(), _caption.getState( - point - QPoint(st::msgPadding.left(), captiony), - captionw, - request.forText())); + return TextState( + _captionItem + ? _captionItem + : _parent->data().get(), + _caption.getState( + point - QPoint(st::msgPadding.left(), captiony), + captionw, + request.forText())); } } else if (_parent->media() == this) { auto fullRight = width(); @@ -667,6 +671,7 @@ void GroupedMedia::updateNeedBubbleState() { if (captionItem) { _caption = createCaption(captionItem); } + _captionItem = captionItem; _needBubble = computeNeedBubble(); } diff --git a/Telegram/SourceFiles/history/view/media/history_view_media_grouped.h b/Telegram/SourceFiles/history/view/media/history_view_media_grouped.h index c5131dc93d..8e46b6e26d 100644 --- a/Telegram/SourceFiles/history/view/media/history_view_media_grouped.h +++ b/Telegram/SourceFiles/history/view/media/history_view_media_grouped.h @@ -141,6 +141,7 @@ private: [[nodiscard]] QMargins groupedPadding() const; Ui::Text::String _caption; + HistoryItem *_captionItem = nullptr; std::vector _parts; Mode _mode = Mode::Grid; bool _needBubble = false;