diff --git a/Telegram/SourceFiles/ui/widgets/chat_filters_tabs_slider.cpp b/Telegram/SourceFiles/ui/widgets/chat_filters_tabs_slider.cpp index 8c5e01f9309cfb..8149ffca5905cf 100644 --- a/Telegram/SourceFiles/ui/widgets/chat_filters_tabs_slider.cpp +++ b/Telegram/SourceFiles/ui/widgets/chat_filters_tabs_slider.cpp @@ -42,6 +42,13 @@ ChatsFiltersTabs::ChatsFiltersTabs( }; _cachedBadgeHeight = one.height(); } + style::PaletteChanged( + ) | rpl::start_with_next([=] { + for (auto &[index, unread] : _unreadCounts) { + unread.cache = cacheUnreadCount(unread.count, unread.muted); + } + update(); + }, lifetime()); Ui::DiscreteSlider::setSelectOnPress(false); } @@ -88,7 +95,11 @@ void ChatsFiltersTabs::setUnreadCount(int index, int unreadCount, bool mute) { if (unreadCount) { _unreadCounts.emplace(index, Unread{ .cache = cacheUnreadCount(unreadCount, mute), - .count = unreadCount, + .count = ushort(std::clamp( + unreadCount, + 0, + int(std::numeric_limits::max()))), + .muted = mute, }); } } else { diff --git a/Telegram/SourceFiles/ui/widgets/chat_filters_tabs_slider.h b/Telegram/SourceFiles/ui/widgets/chat_filters_tabs_slider.h index f6080c62fd4fac..64c66c0628f630 100644 --- a/Telegram/SourceFiles/ui/widgets/chat_filters_tabs_slider.h +++ b/Telegram/SourceFiles/ui/widgets/chat_filters_tabs_slider.h @@ -72,7 +72,8 @@ class ChatsFiltersTabs final : public Ui::SettingsSlider { using Index = int; struct Unread final { QImage cache; - int count = 0; + ushort count = 0; + bool muted = false; }; base::flat_map _unreadCounts; const style::SettingsSlider &_st;