aboutsummaryrefslogtreecommitdiff
path: root/editor/plugins
diff options
context:
space:
mode:
authorvolzhs2018-02-07 06:32:03 +0900
committerHein-Pieter van Braam2018-02-21 22:09:23 +0100
commit317cb336eb548e6e202eca2e9b36455c01edfc33 (patch)
tree6a377af2c744c4f02e8b51d0377a07ae4470745f /editor/plugins
parent83b76a81714f8f41ec3da20df842c2acb2d63d4b (diff)
downloadgodot-317cb336eb548e6e202eca2e9b36455c01edfc33.tar.gz
godot-317cb336eb548e6e202eca2e9b36455c01edfc33.tar.zst
godot-317cb336eb548e6e202eca2e9b36455c01edfc33.zip
Keep to show current script when closing all docs
also fix error when removing multiple tabs from TabContainer at same frame. like closing multiple docs at once. Fix #16403 (cherry picked from commit df84290a7ee2e4e939fc4eccc030129227c83895)
Diffstat (limited to 'editor/plugins')
-rw-r--r--editor/plugins/script_editor_plugin.cpp8
-rw-r--r--editor/plugins/script_editor_plugin.h4
2 files changed, 8 insertions, 4 deletions
diff --git a/editor/plugins/script_editor_plugin.cpp b/editor/plugins/script_editor_plugin.cpp
index 9d7df4cd9..db734ffd1 100644
--- a/editor/plugins/script_editor_plugin.cpp
+++ b/editor/plugins/script_editor_plugin.cpp
@@ -497,7 +497,7 @@ void ScriptEditor::_open_recent_script(int p_idx) {
}
}
-void ScriptEditor::_close_tab(int p_idx, bool p_save) {
+void ScriptEditor::_close_tab(int p_idx, bool p_save, bool p_history_back) {
int selected = p_idx;
if (selected < 0 || selected >= tab_container->get_child_count())
@@ -517,7 +517,9 @@ void ScriptEditor::_close_tab(int p_idx, bool p_save) {
}
// roll back to previous tab
- _history_back();
+ if (p_history_back) {
+ _history_back();
+ }
//remove from history
history.resize(history_pos + 1);
@@ -575,7 +577,7 @@ void ScriptEditor::_close_docs_tab() {
EditorHelp *se = Object::cast_to<EditorHelp>(tab_container->get_child(i));
if (se) {
- _close_tab(i);
+ _close_tab(i, true, false);
}
}
}
diff --git a/editor/plugins/script_editor_plugin.h b/editor/plugins/script_editor_plugin.h
index 0f7c0c56c..f0ada7eca 100644
--- a/editor/plugins/script_editor_plugin.h
+++ b/editor/plugins/script_editor_plugin.h
@@ -251,7 +251,9 @@ class ScriptEditor : public PanelContainer {
void _update_recent_scripts();
void _open_recent_script(int p_idx);
- void _close_tab(int p_idx, bool p_save = true);
+ void _show_error_dialog(String p_path);
+
+ void _close_tab(int p_idx, bool p_save = true, bool p_history_back = true);
void _close_current_tab();
void _close_discard_current_tab(const String &p_str);