Use first message of album as the leader.

This commit is contained in:
John Preston 2020-09-16 11:25:57 +03:00
parent 7f928a92ea
commit 8af559e711
5 changed files with 7 additions and 7 deletions

View file

@ -1234,7 +1234,7 @@ void Session::notifyItemIdChange(IdChange event) {
}; };
enumerateItemViews(item, refreshViewDataId); enumerateItemViews(item, refreshViewDataId);
if (const auto group = groups().find(item)) { if (const auto group = groups().find(item)) {
const auto leader = group->items.back(); const auto leader = group->items.front();
if (leader != item) { if (leader != item) {
enumerateItemViews(leader, refreshViewDataId); enumerateItemViews(leader, refreshViewDataId);
} }

View file

@ -199,7 +199,7 @@ void HistoryItem::finishEdition(int oldKeyboardTop) {
_history->owner().requestItemViewRefresh(this); _history->owner().requestItemViewRefresh(this);
invalidateChatListEntry(); invalidateChatListEntry();
if (const auto group = _history->owner().groups().find(this)) { if (const auto group = _history->owner().groups().find(this)) {
const auto leader = group->items.back(); const auto leader = group->items.front();
if (leader != this) { if (leader != this) {
_history->owner().requestItemViewRefresh(leader); _history->owner().requestItemViewRefresh(leader);
leader->invalidateChatListEntry(); leader->invalidateChatListEntry();

View file

@ -930,7 +930,7 @@ void HistoryWidget::scrollToAnimationCallback(
void HistoryWidget::enqueueMessageHighlight( void HistoryWidget::enqueueMessageHighlight(
not_null<HistoryView::Element*> view) { not_null<HistoryView::Element*> view) {
if (const auto group = session().data().groups().find(view->data())) { if (const auto group = session().data().groups().find(view->data())) {
if (const auto leader = group->items.back()->mainView()) { if (const auto leader = group->items.front()->mainView()) {
view = leader; view = leader;
} }
} }
@ -1020,7 +1020,7 @@ void HistoryWidget::clearHighlightMessages() {
int HistoryWidget::itemTopForHighlight( int HistoryWidget::itemTopForHighlight(
not_null<HistoryView::Element*> view) const { not_null<HistoryView::Element*> view) const {
if (const auto group = session().data().groups().find(view->data())) { if (const auto group = session().data().groups().find(view->data())) {
if (const auto leader = group->items.back()->mainView()) { if (const auto leader = group->items.front()->mainView()) {
view = leader; view = leader;
} }
} }

View file

@ -358,7 +358,7 @@ void Element::refreshMedia(Element *replacing) {
const auto media = item->media(); const auto media = item->media();
if (media && media->canBeGrouped()) { if (media && media->canBeGrouped()) {
if (const auto group = history()->owner().groups().find(item)) { if (const auto group = history()->owner().groups().find(item)) {
if (group->items.back() != item) { if (group->items.front() != item) {
_media = nullptr; _media = nullptr;
_flags |= Flag::HiddenByGroup; _flags |= Flag::HiddenByGroup;
} else { } else {

View file

@ -371,7 +371,7 @@ std::optional<int> ListWidget::scrollTopForView(
not_null<Element*> view) const { not_null<Element*> view) const {
if (view->isHiddenByGroup()) { if (view->isHiddenByGroup()) {
if (const auto group = session().data().groups().find(view->data())) { if (const auto group = session().data().groups().find(view->data())) {
if (const auto leader = viewForItem(group->items.back())) { if (const auto leader = viewForItem(group->items.front())) {
if (!leader->isHiddenByGroup()) { if (!leader->isHiddenByGroup()) {
return scrollTopForView(leader); return scrollTopForView(leader);
} }
@ -1371,7 +1371,7 @@ TextSelection ListWidget::computeRenderSelection(
}; };
const auto item = view->data(); const auto item = view->data();
if (const auto group = session().data().groups().find(item)) { if (const auto group = session().data().groups().find(item)) {
if (group->items.back() != item) { if (group->items.front() != item) {
return TextSelection(); return TextSelection();
} }
auto result = TextSelection(); auto result = TextSelection();