diff --git a/ui/text/custom_emoji_instance.cpp b/ui/text/custom_emoji_instance.cpp index 29dec33..de94b85 100644 --- a/ui/text/custom_emoji_instance.cpp +++ b/ui/text/custom_emoji_instance.cpp @@ -862,14 +862,21 @@ void Object::repaint() { _repaint(); } -Internal::Internal(QString entityData, QImage image, bool colored) +Internal::Internal( + QString entityData, + QImage image, + QMargins padding, + bool colored) : _entityData(std::move(entityData)) , _image(std::move(image)) +, _padding(padding) , _colored(colored) { } int Internal::width() { - return _image.width() / _image.devicePixelRatio(); + return _padding.left() + + (_image.width() / _image.devicePixelRatio()) + + _padding.right(); } QString Internal::entityData() { @@ -880,7 +887,9 @@ void Internal::paint(QPainter &p, const Context &context) { context.internal.colorized = _colored; const auto size = _image.size() / style::DevicePixelRatio(); - const auto rect = QRect(context.position, size); + const auto rect = QRect( + context.position + QPoint(_padding.left(), _padding.top()), + size); PaintScaledImage(p, rect, { &_image }, context); } diff --git a/ui/text/custom_emoji_instance.h b/ui/text/custom_emoji_instance.h index 48ed3c3..597600f 100644 --- a/ui/text/custom_emoji_instance.h +++ b/ui/text/custom_emoji_instance.h @@ -276,7 +276,11 @@ private: class Internal final : public Text::CustomEmoji { public: - Internal(QString entityData, QImage image, bool colored); + Internal( + QString entityData, + QImage image, + QMargins padding, + bool colored); int width() override; QString entityData() override; @@ -288,6 +292,7 @@ public: private: const QString _entityData; const QImage _image; + const QMargins _padding; const bool _colored = false; };