mirror of
https://github.com/RGBCube/serenity
synced 2025-07-26 04:27:44 +00:00
FontEditor: Account for glyph width when pasting
Fixes glyphs not expanding up to their maximum width if necessary when pasting larger glyphs into smaller ones.
This commit is contained in:
parent
281805696b
commit
c1744822a1
2 changed files with 9 additions and 3 deletions
|
@ -193,7 +193,11 @@ FontEditorWidget::FontEditorWidget()
|
||||||
});
|
});
|
||||||
m_paste_action = GUI::CommonActions::make_paste_action([&](auto&) {
|
m_paste_action = GUI::CommonActions::make_paste_action([&](auto&) {
|
||||||
m_glyph_editor_widget->paste_glyph();
|
m_glyph_editor_widget->paste_glyph();
|
||||||
m_glyph_map_widget->update_glyph(m_glyph_map_widget->selected_glyph());
|
if (m_edited_font->is_fixed_width())
|
||||||
|
m_glyph_editor_present_checkbox->set_checked(true, GUI::AllowCallback::No);
|
||||||
|
else
|
||||||
|
m_glyph_editor_width_spinbox->set_value(m_edited_font->raw_glyph_width(m_glyph_map_widget->selected_glyph()), GUI::AllowCallback::No);
|
||||||
|
update_statusbar();
|
||||||
});
|
});
|
||||||
m_paste_action->set_enabled(GUI::Clipboard::the().fetch_mime_type() == "glyph/x-fonteditor");
|
m_paste_action->set_enabled(GUI::Clipboard::the().fetch_mime_type() == "glyph/x-fonteditor");
|
||||||
m_delete_action = GUI::CommonActions::make_delete_action([this](auto&) {
|
m_delete_action = GUI::CommonActions::make_delete_action([this](auto&) {
|
||||||
|
|
|
@ -115,8 +115,10 @@ void GlyphEditorWidget::paste_glyph()
|
||||||
}
|
}
|
||||||
|
|
||||||
auto bitmap = font().raw_glyph(m_glyph).glyph_bitmap();
|
auto bitmap = font().raw_glyph(m_glyph).glyph_bitmap();
|
||||||
for (int x = 0; x < min(bitmap.width(), buffer_width); x++) {
|
if (bitmap.width() < buffer_width)
|
||||||
for (int y = 0; y < min(bitmap.height(), buffer_height); y++) {
|
font().set_glyph_width(m_glyph, min(buffer_width, font().max_glyph_width()));
|
||||||
|
for (int x = 0; x < min(buffer_width, font().max_glyph_width()); x++) {
|
||||||
|
for (int y = 0; y < min(buffer_height, font().glyph_height()); y++) {
|
||||||
bitmap.set_bit_at(x, y, bits[x][y]);
|
bitmap.set_bit_at(x, y, bits[x][y]);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue