Răsfoiți Sursa

Fix error when dropping script into script editor

Haoyu Qiu 2 ani în urmă
părinte
comite
bdcfb0877b
1 a modificat fișierele cu 7 adăugiri și 4 ștergeri
  1. 7 4
      editor/plugins/script_editor_plugin.cpp

+ 7 - 4
editor/plugins/script_editor_plugin.cpp

@@ -2613,15 +2613,18 @@ void ScriptEditor::drop_data_fw(const Point2 &p_point, const Variant &p_data, Co
 			Ref<Script> scr = ResourceLoader::load(file);
 			if (scr.is_valid()) {
 				edit(scr);
-				if (tab_container->get_child_count() > num_tabs_before) {
+				const int num_tabs = tab_container->get_child_count();
+				if (num_tabs > num_tabs_before) {
 					tab_container->move_child(tab_container->get_child(tab_container->get_child_count() - 1), new_index);
-					num_tabs_before = tab_container->get_child_count();
-				} else { /* Maybe script was already open */
+					num_tabs_before = num_tabs;
+				} else if (num_tabs > 0) { /* Maybe script was already open */
 					tab_container->move_child(tab_container->get_child(tab_container->get_current_tab()), new_index);
 				}
 			}
 		}
-		tab_container->set_current_tab(new_index);
+		if (tab_container->get_child_count() > 0) {
+			tab_container->set_current_tab(new_index);
+		}
 		_update_script_names();
 	}
 }