Merge pull request #93968 from bruvzg/font_prev_update

[Editor] Update font preview directly instead of invalidating property list.
This commit is contained in:
Rémi Verschelde 2024-07-05 15:07:50 +02:00
commit f1749c691f
No known key found for this signature in database
GPG Key ID: C3336907360768E1
3 changed files with 18 additions and 1 deletions

View File

@ -950,6 +950,12 @@ void FontPreview::_notification(int p_what) {
font->draw_string(get_canvas_item(), Point2(0, font->get_height(font_size) + 2 * EDSCALE), TTR("Unable to preview font"), HORIZONTAL_ALIGNMENT_CENTER, get_size().x, font_size, text_color);
}
} break;
case NOTIFICATION_EXIT_TREE: {
if (prev_font.is_valid()) {
prev_font->disconnect_changed(callable_mp(this, &FontPreview::_preview_changed));
}
} break;
}
}
@ -960,7 +966,17 @@ Size2 FontPreview::get_minimum_size() const {
}
void FontPreview::set_data(const Ref<Font> &p_f) {
if (prev_font.is_valid()) {
prev_font->disconnect_changed(callable_mp(this, &FontPreview::_preview_changed));
}
prev_font = p_f;
if (prev_font.is_valid()) {
prev_font->connect_changed(callable_mp(this, &FontPreview::_preview_changed));
}
queue_redraw();
}
void FontPreview::_preview_changed() {
queue_redraw();
}

View File

@ -225,6 +225,8 @@ protected:
Ref<Font> prev_font;
void _preview_changed();
public:
virtual Size2 get_minimum_size() const override;

View File

@ -3213,7 +3213,6 @@ void SystemFont::_update_base_font() {
}
_invalidate_rids();
notify_property_list_changed();
}
void SystemFont::reset_state() {