From 8ef00dc4ffb3bc1548527d7bab53982ed4d5419b Mon Sep 17 00:00:00 2001 From: 23rd <23rd@vivaldi.net> Date: Thu, 30 Apr 2020 15:02:40 +0300 Subject: [PATCH] Fixed resetting menu scroll after refresh of filter list. --- Telegram/SourceFiles/window/window_filters_menu.cpp | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/Telegram/SourceFiles/window/window_filters_menu.cpp b/Telegram/SourceFiles/window/window_filters_menu.cpp index 693224441..fb0c124e8 100644 --- a/Telegram/SourceFiles/window/window_filters_menu.cpp +++ b/Telegram/SourceFiles/window/window_filters_menu.cpp @@ -166,6 +166,7 @@ void FiltersMenu::refresh() { if (filters->list().empty() || _ignoreRefresh) { return; } + const auto oldTop = _scroll.scrollTop(); if (!_list) { setupList(); @@ -185,6 +186,12 @@ void FiltersMenu::refresh() { _reorder->start(); _container->resizeToWidth(_outer.width()); + + // After the filters are refreshed, the scroll is reset, + // so we have to restore it. + _scroll.scrollToY(oldTop); + const auto i = _filters.find(_activeFilterId); + scrollToButton((i != end(_filters)) ? i->second : _all); } void FiltersMenu::setupList() {