diff --git a/Telegram/SourceFiles/history/history_inner_widget.cpp b/Telegram/SourceFiles/history/history_inner_widget.cpp index ca9d06436..153e001eb 100644 --- a/Telegram/SourceFiles/history/history_inner_widget.cpp +++ b/Telegram/SourceFiles/history/history_inner_widget.cpp @@ -2128,21 +2128,30 @@ void HistoryInner::showContextMenu(QContextMenuEvent *e, bool showFromTouch) { isUponSelected = hasSelected; } - const auto hasWhoReactedItem = _dragStateItem - && Api::WhoReactedExists(_dragStateItem, Api::WhoReactedList::All); + const auto groupLeaderOrSelf = [](HistoryItem *item) -> HistoryItem* { + if (!item) { + return nullptr; + } else if (const auto group = item->history()->owner().groups().find(item)) { + return group->items.front(); + } + return item; + }; + const auto whoReactedItem = groupLeaderOrSelf(_dragStateItem); + const auto hasWhoReactedItem = whoReactedItem + && Api::WhoReactedExists(whoReactedItem, Api::WhoReactedList::All); const auto clickedReaction = link ? link->property( kReactionsCountEmojiProperty).value() : Data::ReactionId(); _whoReactedMenuLifetime.destroy(); if (!clickedReaction.empty() - && _dragStateItem - && Api::WhoReactedExists(_dragStateItem, Api::WhoReactedList::One)) { + && whoReactedItem + && Api::WhoReactedExists(whoReactedItem, Api::WhoReactedList::One)) { HistoryView::ShowWhoReactedMenu( &_menu, e->globalPos(), this, - _dragStateItem, + whoReactedItem, clickedReaction, _controller, _whoReactedMenuLifetime); @@ -2152,14 +2161,6 @@ void HistoryInner::showContextMenu(QContextMenuEvent *e, bool showFromTouch) { _menu = base::make_unique_q(this, st::popupMenuWithIcons); const auto session = &this->session(); const auto controller = _controller; - const auto groupLeaderOrSelf = [](HistoryItem *item) -> HistoryItem* { - if (!item) { - return nullptr; - } else if (const auto group = item->history()->owner().groups().find(item)) { - return group->items.front(); - } - return item; - }; const auto addItemActions = [&]( HistoryItem *item, HistoryItem *albumPartItem) { @@ -2630,7 +2631,7 @@ void HistoryInner::showContextMenu(QContextMenuEvent *e, bool showFromTouch) { HistoryView::AddWhoReactedAction( _menu, this, - _dragStateItem, + whoReactedItem, _controller); }