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;