mirror of
https://github.com/LadybirdBrowser/ladybird.git
synced 2024-09-30 08:41:15 +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
Notes:
sideshowbarker
2024-07-17 23:20:54 +09:00
Author: https://github.com/thankyouverycool Commit: https://github.com/SerenityOS/serenity/commit/c1744822a17 Pull-request: https://github.com/SerenityOS/serenity/pull/11132
|
@ -193,7 +193,11 @@ FontEditorWidget::FontEditorWidget()
|
|||
});
|
||||
m_paste_action = GUI::CommonActions::make_paste_action([&](auto&) {
|
||||
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_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();
|
||||
for (int x = 0; x < min(bitmap.width(), buffer_width); x++) {
|
||||
for (int y = 0; y < min(bitmap.height(), buffer_height); y++) {
|
||||
if (bitmap.width() < buffer_width)
|
||||
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]);
|
||||
}
|
||||
}
|
||||
|
|
Loading…
Reference in a new issue