From f24411cd96b2e3503d572418a63d2df8bae90fc9 Mon Sep 17 00:00:00 2001 From: 23rd <23rd@vivaldi.net> Date: Thu, 3 Dec 2020 21:09:47 +0300 Subject: [PATCH] Added correct handling animations disabling in mute button. --- ui/widgets/call_mute_button.cpp | 27 +++++++++++---------------- 1 file changed, 11 insertions(+), 16 deletions(-) diff --git a/ui/widgets/call_mute_button.cpp b/ui/widgets/call_mute_button.cpp index ace6e9d..f1f8847 100644 --- a/ui/widgets/call_mute_button.cpp +++ b/ui/widgets/call_mute_button.cpp @@ -211,16 +211,6 @@ void BlobsWidget::init() { Painter p(this); PainterHighQualityEnabler hq(p); - if (anim::Disabled()) { - p.translate(_center, _center); - p.setPen(Qt::NoPen); - p.setBrush(_blobBrush); - const auto radius = st::callMuteMainBlobMinRadius - * kMainRadiusFactor; - p.drawEllipse(QPointF(), radius, radius); - return; - } - // Glow. const auto s = kGlowMinScale + (1. - kGlowMinScale) * _blobs.currentLevel(); @@ -289,12 +279,17 @@ CallMuteButton::CallMuteButton( : _state(initial) , _blobs(base::make_unique_q( parent, - rpl::merge( - std::move(hideBlobs), - _state.value( - ) | rpl::map([](const CallMuteButtonState &state) { - return IsConnecting(state.type); - })))) + rpl::combine( + anim::Disables(), + rpl::merge( + std::move(hideBlobs), + _state.value( + ) | rpl::map([](const CallMuteButtonState &state) { + return IsConnecting(state.type); + })) + ) | rpl::map([](bool animDisabled, bool hide) { + return !(!animDisabled && !hide); + }))) , _content(parent, st::callMuteButtonActive, &st::callMuteButtonMuted) , _radial(nullptr) , _colors(Colors())