summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--Userland/Applications/FontEditor/GlyphEditorWidget.cpp2
-rw-r--r--Userland/Applications/FontEditor/GlyphMapWidget.cpp3
-rw-r--r--Userland/Libraries/LibGfx/BitmapFont.cpp8
3 files changed, 9 insertions, 4 deletions
diff --git a/Userland/Applications/FontEditor/GlyphEditorWidget.cpp b/Userland/Applications/FontEditor/GlyphEditorWidget.cpp
index 753e25a69f..44f61dd5c8 100644
--- a/Userland/Applications/FontEditor/GlyphEditorWidget.cpp
+++ b/Userland/Applications/FontEditor/GlyphEditorWidget.cpp
@@ -147,7 +147,7 @@ void GlyphEditorWidget::paint_event(GUI::PaintEvent& event)
for (int y = 0; y < font().glyph_height(); ++y) {
for (int x = 0; x < font().max_glyph_width(); ++x) {
Gfx::IntRect rect { x * m_scale, y * m_scale, m_scale, m_scale };
- if (x >= font().glyph_width(m_glyph)) {
+ if (x >= font().raw_glyph_width(m_glyph)) {
painter.fill_rect(rect, palette().threed_shadow1());
} else {
if (bitmap.bit_at(x, y))
diff --git a/Userland/Applications/FontEditor/GlyphMapWidget.cpp b/Userland/Applications/FontEditor/GlyphMapWidget.cpp
index f5a2a0be58..51a1161415 100644
--- a/Userland/Applications/FontEditor/GlyphMapWidget.cpp
+++ b/Userland/Applications/FontEditor/GlyphMapWidget.cpp
@@ -98,7 +98,8 @@ void GlyphMapWidget::paint_event(GUI::PaintEvent& event)
font().glyph_height());
if (glyph == m_selected_glyph) {
painter.fill_rect(outer_rect, is_focused() ? palette().selection() : palette().inactive_selection());
- painter.draw_glyph(inner_rect.location(), glyph, is_focused() ? palette().selection_text() : palette().inactive_selection_text());
+ if (m_font->contains_glyph(glyph))
+ painter.draw_glyph(inner_rect.location(), glyph, is_focused() ? palette().selection_text() : palette().inactive_selection_text());
} else if (m_font->contains_glyph(glyph)) {
painter.fill_rect(outer_rect, palette().base());
painter.draw_glyph(inner_rect.location(), glyph, palette().base_text());
diff --git a/Userland/Libraries/LibGfx/BitmapFont.cpp b/Userland/Libraries/LibGfx/BitmapFont.cpp
index 3c50a0c17f..eeac6e9055 100644
--- a/Userland/Libraries/LibGfx/BitmapFont.cpp
+++ b/Userland/Libraries/LibGfx/BitmapFont.cpp
@@ -241,8 +241,12 @@ Glyph BitmapFont::glyph(u32 code_point) const
int BitmapFont::glyph_or_emoji_width(u32 code_point) const
{
- if (code_point < m_glyph_count)
- return glyph_width(code_point);
+ if (code_point < m_glyph_count) {
+ if (m_glyph_widths[code_point] > 0)
+ return glyph_width(code_point);
+ else
+ return glyph_width('?');
+ }
if (m_fixed_width)
return m_glyph_width;