diff options
Diffstat (limited to 'tools/editor/plugins/script_editor_plugin.cpp')
-rw-r--r-- | tools/editor/plugins/script_editor_plugin.cpp | 16 |
1 files changed, 14 insertions, 2 deletions
diff --git a/tools/editor/plugins/script_editor_plugin.cpp b/tools/editor/plugins/script_editor_plugin.cpp index f459bf483a..4061bb9827 100644 --- a/tools/editor/plugins/script_editor_plugin.cpp +++ b/tools/editor/plugins/script_editor_plugin.cpp @@ -531,7 +531,7 @@ static void _find_changed_scripts_for_external_editor(Node* p_base, Node*p_curre } -void ScriptEditor::_update_modified_scripts_for_external_editor() { +void ScriptEditor::_update_modified_scripts_for_external_editor(Ref<Script> p_for_script) { if (!bool(EditorSettings::get_singleton()->get("external_editor/use_external_editor"))) return; @@ -547,6 +547,9 @@ void ScriptEditor::_update_modified_scripts_for_external_editor() { Ref<Script> script = E->get(); + if (p_for_script.is_valid() && p_for_script!=script) + continue; + if (script->get_path()=="" || script->get_path().find("local://")!=-1 || script->get_path().find("::")!=-1) { continue; //internal script, who cares, though weird @@ -900,7 +903,7 @@ void ScriptEditor::_live_auto_reload_running_scripts() { } -bool ScriptEditor::_test_script_times_on_disk() { +bool ScriptEditor::_test_script_times_on_disk(Ref<Script> p_for_script) { disk_changed_list->clear(); @@ -920,6 +923,9 @@ bool ScriptEditor::_test_script_times_on_disk() { Ref<Script> script = ste->get_edited_script(); + if (p_for_script.is_valid() && p_for_script!=script) + continue; + if (script->get_path()=="" || script->get_path().find("local://")!=-1 || script->get_path().find("::")!=-1) continue; //internal script, who cares @@ -2128,6 +2134,12 @@ void ScriptEditor::edit(const Ref<Script>& p_script) { if (!restoring_layout) { EditorNode::get_singleton()->save_layout(); } + + //test for modification, maybe the script was not edited but was loaded + + _test_script_times_on_disk(p_script); + _update_modified_scripts_for_external_editor(p_script); + } void ScriptEditor::save_all_scripts() { |