Skip to content

Commit

Permalink
LibVT: only use default bold font if it's the same size as our font
Browse files Browse the repository at this point in the history
When the new font is a different size, just use that font for bold
glyphs as well.  It would be nice to find a matching bold version of
the new font automatically in the future.
  • Loading branch information
jcs authored and awesomekling committed Jan 15, 2020
1 parent d4d17ce commit 24b8a27
Show file tree
Hide file tree
Showing 2 changed files with 14 additions and 1 deletion.
11 changes: 10 additions & 1 deletion Libraries/LibVT/TerminalWidget.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -340,7 +340,7 @@ void TerminalWidget::paint_event(GPaintEvent& event)
painter.draw_glyph_or_emoji(
character_rect.location(),
codepoint,
attribute.flags & VT::Attribute::Bold ? Font::default_bold_fixed_width_font() : font(),
attribute.flags & VT::Attribute::Bold ? bold_font() : font(),
lookup_color(should_reverse_fill_for_cursor_or_selection ? attribute.background_color : attribute.foreground_color));
}
}
Expand Down Expand Up @@ -667,6 +667,15 @@ void TerminalWidget::did_change_font()
{
GFrame::did_change_font();
m_line_height = font().glyph_height() + m_line_spacing;

// TODO: try to find a bold version of the new font (e.g. CsillaThin7x10 -> CsillaBold7x10)
const Font& bold_font = Font::default_bold_fixed_width_font();

if (bold_font.glyph_height() == font().glyph_height() && bold_font.glyph_width(' ') == font().glyph_width(' '))
m_bold_font = &bold_font;
else
m_bold_font = font();

if (!size().is_empty())
relayout(size());
}
4 changes: 4 additions & 0 deletions Libraries/LibVT/TerminalWidget.h
Original file line number Diff line number Diff line change
Expand Up @@ -32,6 +32,8 @@ class TerminalWidget final : public GFrame

void apply_size_increments_to_window(GWindow&);

const Font& bold_font() const { return *m_bold_font; }

void set_opacity(u8);
float opacity() { return m_opacity; };
bool should_beep() { return m_should_beep; }
Expand Down Expand Up @@ -120,6 +122,8 @@ class TerminalWidget final : public GFrame
bool m_cursor_blink_state { true };
bool m_automatic_size_policy { false };

RefPtr<Font> m_bold_font;

int m_glyph_width { 0 };

RefPtr<CTimer> m_cursor_blink_timer;
Expand Down

0 comments on commit 24b8a27

Please sign in to comment.