From 8542d1da5a7559e944b9a1aa9fd26d86757a17b9 Mon Sep 17 00:00:00 2001 From: Maciej Date: Fri, 21 Jan 2022 18:48:47 +0100 Subject: [PATCH] LibGfx: Always scale emojis to fit font height --- Userland/Libraries/LibGfx/BitmapFont.cpp | 2 +- Userland/Libraries/LibGfx/Painter.cpp | 18 +++++++----------- 2 files changed, 8 insertions(+), 12 deletions(-) diff --git a/Userland/Libraries/LibGfx/BitmapFont.cpp b/Userland/Libraries/LibGfx/BitmapFont.cpp index 6d2f1b6ee6..7653c1f308 100644 --- a/Userland/Libraries/LibGfx/BitmapFont.cpp +++ b/Userland/Libraries/LibGfx/BitmapFont.cpp @@ -314,7 +314,7 @@ int BitmapFont::glyph_or_emoji_width_for_variable_width_font(u32 code_point) con auto* emoji = Emoji::emoji_for_code_point(code_point); if (emoji == nullptr) return glyph_width(0xFFFD); - return emoji->size().width(); + return glyph_height() * emoji->width() / emoji->height(); } int BitmapFont::width(StringView view) const { return unicode_view_width(Utf8View(view)); } diff --git a/Userland/Libraries/LibGfx/Painter.cpp b/Userland/Libraries/LibGfx/Painter.cpp index d1d131b2fa..d58b506e10 100644 --- a/Userland/Libraries/LibGfx/Painter.cpp +++ b/Userland/Libraries/LibGfx/Painter.cpp @@ -1226,17 +1226,13 @@ FLATTEN void Painter::draw_glyph(IntPoint const& point, u32 code_point, Font con void Painter::draw_emoji(IntPoint const& point, Gfx::Bitmap const& emoji, Font const& font) { - if (!font.is_fixed_width()) - blit(point, emoji, emoji.rect()); - else { - IntRect dst_rect { - point.x(), - point.y(), - font.glyph_width('x'), - font.glyph_height() - }; - draw_scaled_bitmap(dst_rect, emoji, emoji.rect()); - } + IntRect dst_rect { + point.x(), + point.y(), + font.glyph_height() * emoji.width() / emoji.height(), + font.glyph_height() + }; + draw_scaled_bitmap(dst_rect, emoji, emoji.rect()); } void Painter::draw_glyph_or_emoji(IntPoint const& point, u32 code_point, Font const& font, Color color)