diff --git a/Telegram/SourceFiles/info/media/info_media_buttons.cpp b/Telegram/SourceFiles/info/media/info_media_buttons.cpp index a4ad07931e..ef01a3a1f5 100644 --- a/Telegram/SourceFiles/info/media/info_media_buttons.cpp +++ b/Telegram/SourceFiles/info/media/info_media_buttons.cpp @@ -324,6 +324,7 @@ not_null AddPeerGiftsButton( rpl::event_stream<> textRefreshed; QPointer button; rpl::lifetime appearedLifetime; + bool giftsLoaded = false; }; const auto state = parent->lifetime().make_state(); @@ -364,7 +365,13 @@ not_null AddPeerGiftsButton( .customEmojiLoopLimit = 1, })))); wrap->setDuration(st::infoSlideDuration); - wrap->toggleOn(rpl::duplicate(forked) | rpl::map(rpl::mappers::_1 > 0)); + wrap->toggleOn( + rpl::combine( + rpl::duplicate(forked), + state->textRefreshed.events_starting_with({}) + ) | rpl::map([=](int count, auto) { + return count > 0 && state->giftsLoaded; + })); tracker.track(wrap); rpl::duplicate(forked) | rpl::filter( @@ -380,6 +387,7 @@ not_null AddPeerGiftsButton( gift.info.document->id, refresh)); } + state->giftsLoaded = true; state->textRefreshed.fire({}); }); navigation->session().recentSharedGifts().request(peer, requestDone);