Fix crash in shared media search message delete.

Fixes #8237.
This commit is contained in:
John Preston 2020-10-06 14:20:49 +03:00
parent cd506dfff5
commit 6ccd53689d

View file

@ -649,9 +649,12 @@ void ListWidget::restart() {
} }
void ListWidget::itemRemoved(not_null<const HistoryItem*> item) { void ListWidget::itemRemoved(not_null<const HistoryItem*> item) {
if (isMyItem(item)) { if (!isMyItem(item)) {
return;
}
auto id = GetUniversalId(item); auto id = GetUniversalId(item);
auto needHeightRefresh = false;
auto sectionIt = findSectionByItem(id); auto sectionIt = findSectionByItem(id);
if (sectionIt != _sections.end()) { if (sectionIt != _sections.end()) {
if (sectionIt->removeItem(id)) { if (sectionIt->removeItem(id)) {
@ -659,7 +662,7 @@ void ListWidget::itemRemoved(not_null<const HistoryItem*> item) {
if (sectionIt->empty()) { if (sectionIt->empty()) {
_sections.erase(sectionIt); _sections.erase(sectionIt);
} }
refreshHeight(); needHeightRefresh = true;
} }
} }
@ -677,8 +680,10 @@ void ListWidget::itemRemoved(not_null<const HistoryItem*> item) {
removeItemSelection(i); removeItemSelection(i);
} }
mouseActionUpdate(_mousePosition); if (needHeightRefresh) {
refreshHeight();
} }
mouseActionUpdate(_mousePosition);
} }
FullMsgId ListWidget::computeFullId( FullMsgId ListWidget::computeFullId(