From 4b25406d14964a64d222abb05ede95fc532724b3 Mon Sep 17 00:00:00 2001 From: John Preston Date: Thu, 5 Jun 2025 12:19:27 +0400 Subject: [PATCH] Remove delay when switching subsection tabs. --- .../ui/controls/subsection_tabs_slider.cpp | 16 +++++++--------- 1 file changed, 7 insertions(+), 9 deletions(-) diff --git a/Telegram/SourceFiles/ui/controls/subsection_tabs_slider.cpp b/Telegram/SourceFiles/ui/controls/subsection_tabs_slider.cpp index 2cc4fcabdd..d1006e53a1 100644 --- a/Telegram/SourceFiles/ui/controls/subsection_tabs_slider.cpp +++ b/Telegram/SourceFiles/ui/controls/subsection_tabs_slider.cpp @@ -7,7 +7,6 @@ https://github.com/telegramdesktop/tdesktop/blob/master/LEGAL */ #include "ui/controls/subsection_tabs_slider.h" -#include "base/call_delayed.h" #include "dialogs/dialogs_three_state_icon.h" #include "ui/effects/ripple_animation.h" #include "ui/dynamic_image.h" @@ -384,14 +383,13 @@ void SubsectionSlider::activate(int index) { } } }; - const auto duration = st::chatTabsSlider.duration; - _activeFrom.start(callback, was.from, now.from, duration); - _activeSize.start(callback, was.size, now.size, duration); - base::call_delayed(duration, this, [=] { - if (_active == index) { - _sectionActivated.fire_copy(index); - } - }); + const auto weak = Ui::MakeWeak(_bar); + _sectionActivated.fire_copy(index); + if (weak) { + const auto duration = st::chatTabsSlider.duration; + _activeFrom.start(callback, was.from, now.from, duration); + _activeSize.start(callback, was.size, now.size, duration); + } } void SubsectionSlider::setActiveSectionFast(int active) {