diff --git a/Telegram/SourceFiles/history/view/history_view_send_action.cpp b/Telegram/SourceFiles/history/view/history_view_send_action.cpp index 6ad1fcc28..e8c0015ed 100644 --- a/Telegram/SourceFiles/history/view/history_view_send_action.cpp +++ b/Telegram/SourceFiles/history/view/history_view_send_action.cpp @@ -296,15 +296,17 @@ bool SendActionPainter::updateNeedsAnimating(crl::time now, bool force) { const auto index = newTypingString.size() - lang.rightIndexChoosingStickerReplacement( isNamed); - animationLeft = _st.font->width( - newTypingString, - 0, - index); + animationLeft = Ui::Text::String( + _st, + newTypingString.mid(0, index)).maxWidth(); if (!_spacesCount) { - _spacesCount = std::ceil( + // We have to use QFontMetricsF instead of + // FontData::spacew for more precise calculation. + const auto mf = QFontMetricsF(_st.font->f); + _spacesCount = std::round( _sendActionAnimation.width() - / _st.font->spacew); + / mf.horizontalAdvance(' ')); } newTypingString = newTypingString.replace( index,