1
Fork 0
mirror of https://github.com/RGBCube/serenity synced 2025-05-31 12:28:12 +00:00

FontEditor: Remove weird focus rects and optimize repaint while drawing.

I added focus rects to these widgets because I had just started working on
focus support and I was excited but it doesn't really make sense for these
things to have focus rects. :^)

While I was here I also optimized the repaint code to only update the edited
glyph in the glyph map when editing its pixels.
This commit is contained in:
Andreas Kling 2019-04-06 15:28:06 +02:00
parent ac6c7d3e19
commit f2580dcfeb
5 changed files with 15 additions and 14 deletions

View file

@ -44,9 +44,16 @@ Rect GlyphMapWidget::get_outer_rect(byte glyph) const
};
}
void GlyphMapWidget::paint_event(GPaintEvent&)
void GlyphMapWidget::update_glyph(byte glyph)
{
update(get_outer_rect(glyph));
}
void GlyphMapWidget::paint_event(GPaintEvent& event)
{
GPainter painter(*this);
painter.add_clip_rect(event.rect());
painter.set_font(font());
painter.fill_rect(rect(), Color::White);
painter.draw_rect(rect(), Color::Black);
@ -63,16 +70,13 @@ void GlyphMapWidget::paint_event(GPaintEvent&)
font().glyph_height()
);
if (glyph == m_selected_glyph) {
painter.fill_rect(outer_rect, Color::Red);
painter.fill_rect(outer_rect, Color::from_rgb(0x84351a));
painter.draw_glyph(inner_rect.location(), glyph, Color::White);
} else {
painter.draw_glyph(inner_rect.location(), glyph, Color::Black);
}
}
}
if (is_focused())
painter.draw_focus_rect(rect());
}
void GlyphMapWidget::mousedown_event(GMouseEvent& event)