diff --git a/Telegram/SourceFiles/history/view/history_view_list_widget.cpp b/Telegram/SourceFiles/history/view/history_view_list_widget.cpp index 3d1ff4df7..ff973ed11 100644 --- a/Telegram/SourceFiles/history/view/history_view_list_widget.cpp +++ b/Telegram/SourceFiles/history/view/history_view_list_widget.cpp @@ -3788,8 +3788,6 @@ void ListWidget::viewReplaced(not_null was, Element *now) { } void ListWidget::itemRemoved(not_null item) { - saveScrollState(); - if (_reactionsItem.current() == item) { _reactionsItem = nullptr; } @@ -3806,6 +3804,12 @@ void ListWidget::itemRemoved(not_null item) { if (i == end(_views)) { return; } + + saveScrollState(); + const auto guard = gsl::finally([&] { + restoreScrollState(); + }); + const auto view = i->second.get(); _items.erase( ranges::remove(_items, view, [](auto view) { return view.get(); }),