summaryrefslogtreecommitdiff
path: root/editor/plugins
diff options
context:
space:
mode:
authorvolzhs <volzhs@gmail.com>2018-02-07 06:32:03 +0900
committervolzhs <volzhs@gmail.com>2018-02-20 14:39:52 +0900
commitdf84290a7ee2e4e939fc4eccc030129227c83895 (patch)
tree650fccacd65468405b203da72a8b1fbca7557ef5 /editor/plugins
parentfee29570d0a5ee2de5b6b8e28621636489ac9bb3 (diff)
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
Diffstat (limited to 'editor/plugins')
-rw-r--r--editor/plugins/script_editor_plugin.cpp8
-rw-r--r--editor/plugins/script_editor_plugin.h2
2 files changed, 6 insertions, 4 deletions
diff --git a/editor/plugins/script_editor_plugin.cpp b/editor/plugins/script_editor_plugin.cpp
index bd8c502a80..ce71cf3284 100644
--- a/editor/plugins/script_editor_plugin.cpp
+++ b/editor/plugins/script_editor_plugin.cpp
@@ -505,7 +505,7 @@ void ScriptEditor::_show_error_dialog(String p_path) {
error_dialog->popup_centered_minsize();
}
-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())
@@ -521,7 +521,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);
@@ -579,7 +581,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 e98a4c97a6..2e7652a7be 100644
--- a/editor/plugins/script_editor_plugin.h
+++ b/editor/plugins/script_editor_plugin.h
@@ -251,7 +251,7 @@ class ScriptEditor : public PanelContainer {
void _show_error_dialog(String p_path);
- void _close_tab(int p_idx, bool p_save = true);
+ 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);