Browse Source

Fix visual shader not being updated when switching tabs

Yuri Rubinsky 1 year ago
parent
commit
3bbbedc144

+ 5 - 0
editor/plugins/shader_editor_plugin.cpp

@@ -365,6 +365,11 @@ void ShaderEditorPlugin::_shader_selected(int p_index) {
 	if (edited_shaders[p_index].shader_editor) {
 		edited_shaders[p_index].shader_editor->validate_script();
 	}
+
+	if (edited_shaders[p_index].visual_shader_editor) {
+		edited_shaders[p_index].visual_shader_editor->validate_script();
+	}
+
 	shader_tabs->set_current_tab(p_index);
 	shader_list->select(p_index);
 }

+ 6 - 0
editor/plugins/visual_shader_editor_plugin.cpp

@@ -1545,6 +1545,12 @@ void VisualShaderEditor::edit(VisualShader *p_visual_shader) {
 	}
 }
 
+void VisualShaderEditor::validate_script() {
+	if (visual_shader.is_valid()) {
+		_update_nodes();
+	}
+}
+
 void VisualShaderEditor::add_plugin(const Ref<VisualShaderNodePlugin> &p_plugin) {
 	if (plugins.has(p_plugin)) {
 		return;

+ 2 - 0
editor/plugins/visual_shader_editor_plugin.h

@@ -612,6 +612,8 @@ public:
 	void edit(VisualShader *p_visual_shader);
 	Ref<VisualShader> get_visual_shader() const { return visual_shader; }
 
+	void validate_script();
+
 	VisualShaderEditor();
 };