summaryrefslogtreecommitdiffstats
path: root/editor/plugins/theme_editor_plugin.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'editor/plugins/theme_editor_plugin.cpp')
-rw-r--r--editor/plugins/theme_editor_plugin.cpp22
1 files changed, 19 insertions, 3 deletions
diff --git a/editor/plugins/theme_editor_plugin.cpp b/editor/plugins/theme_editor_plugin.cpp
index 4cc88aab34..da3b4c5f19 100644
--- a/editor/plugins/theme_editor_plugin.cpp
+++ b/editor/plugins/theme_editor_plugin.cpp
@@ -2386,9 +2386,25 @@ HashMap<StringName, bool> ThemeTypeEditor::_get_type_items(String p_type_name, T
if (p_include_default) {
names.clear();
- String default_type = p_type_name;
- if (edited_theme->get_type_variation_base(p_type_name) != StringName()) {
- default_type = edited_theme->get_type_variation_base(p_type_name);
+ String default_type;
+
+ {
+ const StringName variation_base = edited_theme->get_type_variation_base(p_type_name);
+ if (variation_base != StringName()) {
+ default_type = variation_base;
+ }
+ }
+
+ if (default_type.is_empty()) {
+ // If variation base was not found in the edited theme, look in the default theme.
+ const StringName variation_base = ThemeDB::get_singleton()->get_default_theme()->get_type_variation_base(p_type_name);
+ if (variation_base != StringName()) {
+ default_type = variation_base;
+ }
+ }
+
+ if (default_type.is_empty()) {
+ default_type = p_type_name;
}
List<ThemeDB::ThemeItemBind> theme_binds;