diff options
author | Juan Linietsky <reduzio@gmail.com> | 2016-06-13 22:24:11 -0300 |
---|---|---|
committer | Juan Linietsky <reduzio@gmail.com> | 2016-06-13 22:24:11 -0300 |
commit | 944c7e26038ff82c4666fa2c3814c612ef576761 (patch) | |
tree | c0194e0dd355b1e8e7993ed5116115ec42e46f5b | |
parent | 64b4253dbfe3fdfc4efa405086d23765a9774d91 (diff) | |
download | redot-engine-944c7e26038ff82c4666fa2c3814c612ef576761.tar.gz |
fix crash when clearing dynamicfontdata, closes #4877
-rw-r--r-- | scene/gui/control.cpp | 2 | ||||
-rw-r--r-- | scene/resources/dynamic_font.cpp | 6 |
2 files changed, 6 insertions, 2 deletions
diff --git a/scene/gui/control.cpp b/scene/gui/control.cpp index b122ab4183..666ac88055 100644 --- a/scene/gui/control.cpp +++ b/scene/gui/control.cpp @@ -1844,7 +1844,7 @@ void Control::_propagate_theme_changed(CanvasItem *p_at,Control *p_owner) { Control *c = p_at->cast_to<Control>(); - if (c && c->data.theme.is_valid()) // has a theme, this can't be propagated + if (c && c!=p_owner && c->data.theme.is_valid()) // has a theme, this can't be propagated return; for(int i=0;i<p_at->get_child_count();i++) { diff --git a/scene/resources/dynamic_font.cpp b/scene/resources/dynamic_font.cpp index 78a5571bf0..1edae01754 100644 --- a/scene/resources/dynamic_font.cpp +++ b/scene/resources/dynamic_font.cpp @@ -573,7 +573,11 @@ DynamicFontAtSize::~DynamicFontAtSize(){ void DynamicFont::set_font_data(const Ref<DynamicFontData>& p_data) { data=p_data; - data_at_size=data->_get_dynamic_font_at_size(size); + if (data.is_valid()) + data_at_size=data->_get_dynamic_font_at_size(size); + else + data_at_size=Ref<DynamicFontAtSize>(); + emit_changed(); } |