From 480c109b09fc5191ac2e4e8b6a338f0e1a1173cc Mon Sep 17 00:00:00 2001 From: John Preston Date: Sun, 23 Apr 2023 18:41:33 +0400 Subject: [PATCH] Request WhoRead/Reacted only for group leader. --- .../history/history_inner_widget.cpp | 29 ++++++++++--------- 1 file changed, 15 insertions(+), 14 deletions(-) diff --git a/Telegram/SourceFiles/history/history_inner_widget.cpp b/Telegram/SourceFiles/history/history_inner_widget.cpp index ca9d064369..153e001ebe 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); }