From ea840471d2330c2763567c2e46b2414af6e0429d Mon Sep 17 00:00:00 2001 From: 23rd <23rd@vivaldi.net> Date: Sun, 6 Dec 2020 18:00:07 +0300 Subject: [PATCH] Fixed blob animations in mute button with enabled push-to-talk. --- ui/widgets/call_mute_button.cpp | 20 ++++++++++---------- 1 file changed, 10 insertions(+), 10 deletions(-) diff --git a/ui/widgets/call_mute_button.cpp b/ui/widgets/call_mute_button.cpp index f1f8847..0eca708 100644 --- a/ui/widgets/call_mute_button.cpp +++ b/ui/widgets/call_mute_button.cpp @@ -168,11 +168,12 @@ BlobsWidget::BlobsWidget( const auto radiuses = _blobs.radiusesAt(i); auto radiusesChange = rpl::duplicate( hideBlobs + ) | rpl::distinct_until_changed( ) | rpl::map([=](bool hide) -> Radiuses { return hide ? Radiuses{ radiuses.min, radiuses.min } : radiuses; - }) | rpl::distinct_until_changed(); + }); _blobs.setRadiusesAt(std::move(radiusesChange), i); } @@ -280,15 +281,14 @@ CallMuteButton::CallMuteButton( , _blobs(base::make_unique_q( parent, 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); + rpl::single(anim::Disabled()) | rpl::then(anim::Disables()), + std::move(hideBlobs), + _state.value( + ) | rpl::map([](const CallMuteButtonState &state) { + return IsConnecting(state.type); + }) + ) | rpl::map([](bool animDisabled, bool hide, bool isConnecting) { + return isConnecting || !(!animDisabled && !hide); }))) , _content(parent, st::callMuteButtonActive, &st::callMuteButtonMuted) , _radial(nullptr)