Ver Fonte

fix crash when clearing dynamicfontdata, closes #4877

Juan Linietsky há 9 anos atrás
pai
commit
944c7e2603
2 ficheiros alterados com 6 adições e 2 exclusões
  1. 1 1
      scene/gui/control.cpp
  2. 5 1
      scene/resources/dynamic_font.cpp

+ 1 - 1
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++) {

+ 5 - 1
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();
 }