diff --git a/Telegram/SourceFiles/settings/settings_main.cpp b/Telegram/SourceFiles/settings/settings_main.cpp index 36911968cd..086a19841e 100644 --- a/Telegram/SourceFiles/settings/settings_main.cpp +++ b/Telegram/SourceFiles/settings/settings_main.cpp @@ -259,6 +259,8 @@ void SetupInterfaceScale( slider->sectionActivated( ) | rpl::map([=](int section) { return scaleByIndex(section); + }) | rpl::filter([=](int scale) { + return cEvalScale(scale) != cEvalScale(cConfigScale()); }) | rpl::start_with_next([=](int scale) { setScale( (scale == cScreenScale()) ? style::kScaleAuto : scale, diff --git a/Telegram/SourceFiles/ui/widgets/discrete_sliders.cpp b/Telegram/SourceFiles/ui/widgets/discrete_sliders.cpp index 9de847c784..70732c495a 100644 --- a/Telegram/SourceFiles/ui/widgets/discrete_sliders.cpp +++ b/Telegram/SourceFiles/ui/widgets/discrete_sliders.cpp @@ -47,6 +47,10 @@ void DiscreteSlider::setActiveSectionFast(int index) { void DiscreteSlider::finishAnimating() { _a_left.stop(); update(); + _callbackAfterMs = 0; + if (_timerId >= 0) { + activateCallback(); + } } void DiscreteSlider::setSelectOnPress(bool selectOnPress) {