Fix name overlapping emoji status.

This commit is contained in:
John Preston
2026-05-26 11:43:46 +04:00
parent 0bfd2bd0d5
commit 3ea799391a
@@ -1855,9 +1855,12 @@ void Message::paintFromName(
const auto statusWidth = _fromNameStatus
? st::dialogsPremiumIcon.icon.width()
: 0;
const auto nameAvailableWidth = (statusWidth && availableWidth > statusWidth)
? (availableWidth - statusWidth)
: availableWidth;
if (statusWidth && availableWidth > statusWidth) {
const auto x = availableLeft
+ std::min(availableWidth - statusWidth, nameText->maxWidth());
+ std::min(nameAvailableWidth, nameText->maxWidth());
const auto y = trect.top();
auto color = nameFg;
color.setAlpha(115);
@@ -1897,7 +1900,7 @@ void Message::paintFromName(
const auto nameLinkHandler = fromLink();
const auto nameWidth = std::min(
nameText->maxWidth(),
availableWidth);
nameAvailableWidth);
paintLinkRipple(
p,
nameLinkHandler,
@@ -1905,7 +1908,7 @@ void Message::paintFromName(
trect.topLeft());
nameText->draw(p, {
.position = { availableLeft, trect.top() },
.availableWidth = availableWidth,
.availableWidth = nameAvailableWidth,
.elisionLines = 1,
});
const auto skipWidth = nameText->maxWidth()