浏览代码

Merge pull request #15372 from Faless/fix_themes

Fix theme inheritance
Rémi Verschelde 7 年之前
父节点
当前提交
eaa9a98c63
共有 1 个文件被更改,包括 3 次插入2 次删除
  1. 3 2
      scene/gui/control.cpp

+ 3 - 2
scene/gui/control.cpp

@@ -861,6 +861,8 @@ Ref<StyleBox> Control::get_stylebox(const StringName &p_name, const StringName &
 			class_name = ClassDB::get_parent_class_nocheck(class_name);
 			class_name = ClassDB::get_parent_class_nocheck(class_name);
 		}
 		}
 
 
+		class_name = type;
+
 		Control *parent = Object::cast_to<Control>(theme_owner->get_parent());
 		Control *parent = Object::cast_to<Control>(theme_owner->get_parent());
 
 
 		if (parent)
 		if (parent)
@@ -869,8 +871,6 @@ Ref<StyleBox> Control::get_stylebox(const StringName &p_name, const StringName &
 			theme_owner = NULL;
 			theme_owner = NULL;
 	}
 	}
 
 
-	class_name = type;
-
 	while (class_name != StringName()) {
 	while (class_name != StringName()) {
 		if (Theme::get_default()->has_stylebox(p_name, class_name))
 		if (Theme::get_default()->has_stylebox(p_name, class_name))
 			return Theme::get_default()->get_stylebox(p_name, class_name);
 			return Theme::get_default()->get_stylebox(p_name, class_name);
@@ -2155,6 +2155,7 @@ void Control::set_theme(const Ref<Theme> &p_theme) {
 	data.theme = p_theme;
 	data.theme = p_theme;
 	if (!p_theme.is_null()) {
 	if (!p_theme.is_null()) {
 
 
+		data.theme_owner = this;
 		_propagate_theme_changed(this, this);
 		_propagate_theme_changed(this, this);
 	} else {
 	} else {