diff --git a/Telegram/SourceFiles/boxes/peers/edit_participants_box.cpp b/Telegram/SourceFiles/boxes/peers/edit_participants_box.cpp index fcaf8dbf4..50e68a880 100644 --- a/Telegram/SourceFiles/boxes/peers/edit_participants_box.cpp +++ b/Telegram/SourceFiles/boxes/peers/edit_participants_box.cpp @@ -1941,7 +1941,7 @@ auto ParticipantsBoxController::computeType( ? Badge::Fake : user->isVerified() ? Badge::Verified - : (user->isPremium() && participant->session().premiumPossible()) + : (user->isPremium() && participant->session().premiumBadgesShown()) ? Badge::Premium : Badge::None; return result; diff --git a/Telegram/SourceFiles/info/profile/info_profile_values.cpp b/Telegram/SourceFiles/info/profile/info_profile_values.cpp index a74d71ea4..9c83b157e 100644 --- a/Telegram/SourceFiles/info/profile/info_profile_values.cpp +++ b/Telegram/SourceFiles/info/profile/info_profile_values.cpp @@ -479,14 +479,14 @@ rpl::producer BadgeValueFromFlags(Peer peer) { Flag::Verified | Flag::Scam | Flag::Fake), Data::PeerPremiumValue(peer) ) | rpl::map([=](base::flags value, bool premium) { - return (value & Flag::Verified) - ? Badge::Verified - : premium - ? Badge::Premium - : (value & Flag::Scam) + return (value & Flag::Scam) ? Badge::Scam : (value & Flag::Fake) ? Badge::Fake + : (value & Flag::Verified) + ? Badge::Verified + : premium + ? Badge::Premium : Badge::None; }); } diff --git a/Telegram/SourceFiles/ui/unread_badge.cpp b/Telegram/SourceFiles/ui/unread_badge.cpp index bc92b396b..0f4e91bdd 100644 --- a/Telegram/SourceFiles/ui/unread_badge.cpp +++ b/Telegram/SourceFiles/ui/unread_badge.cpp @@ -110,25 +110,7 @@ int DrawPeerBadgeGetWidth( int nameWidth, int outerWidth, const PeerBadgeStyle &st) { - if (peer->isVerified() && st.verified) { - const auto iconw = st.verified->width(); - st.verified->paint( - p, - rectForName.x() + qMin(nameWidth, rectForName.width() - iconw), - rectForName.y(), - outerWidth); - return iconw; - } else if (peer->isPremium() - && st.premium - && peer->session().premiumBadgesShown()) { - const auto iconw = st.premium->width(); - st.premium->paint( - p, - rectForName.x() + qMin(nameWidth, rectForName.width() - iconw), - rectForName.y(), - outerWidth); - return iconw; - } else if ((peer->isScam() || peer->isFake()) && st.scam) { + if ((peer->isScam() || peer->isFake()) && st.scam) { const auto phrase = peer->isScam() ? tr::lng_scam_badge(tr::now) : tr::lng_fake_badge(tr::now); @@ -149,6 +131,24 @@ int DrawPeerBadgeGetWidth( height); DrawScamFakeBadge(p, rect, outerWidth, *st.scam, phrase, phraseWidth); return st::dialogsScamSkip + width; + } else if (peer->isVerified() && st.verified) { + const auto iconw = st.verified->width(); + st.verified->paint( + p, + rectForName.x() + qMin(nameWidth, rectForName.width() - iconw), + rectForName.y(), + outerWidth); + return iconw; + } else if (peer->isPremium() + && st.premium + && peer->session().premiumBadgesShown()) { + const auto iconw = st.premium->width(); + st.premium->paint( + p, + rectForName.x() + qMin(nameWidth, rectForName.width() - iconw), + rectForName.y(), + outerWidth); + return iconw; } return 0; }