summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJames Buck <jamesbuck11@gmail.com>2023-04-07 17:44:37 +0200
committerYuri Sizov <yuris@humnom.net>2023-04-07 17:44:37 +0200
commit861399fbe58c05633cb51eaf381d976ed59e122a (patch)
treecaf7295521500768e0a60d067f3bb1f6986ffafe
parent1aa5fce3214323e1bfd25762acd3904304d360d1 (diff)
Re-enable script editor File menu shortcuts when the menu is hidden
(cherry picked from commit de49bec30e8e2fc5881871a50f9222d90aacc24f)
-rw-r--r--editor/plugins/script_editor_plugin.cpp25
-rw-r--r--editor/plugins/script_editor_plugin.h1
2 files changed, 26 insertions, 0 deletions
diff --git a/editor/plugins/script_editor_plugin.cpp b/editor/plugins/script_editor_plugin.cpp
index 49c815526b..a749e6de41 100644
--- a/editor/plugins/script_editor_plugin.cpp
+++ b/editor/plugins/script_editor_plugin.cpp
@@ -1561,6 +1561,30 @@ void ScriptEditor::_prepare_file_menu() {
menu->set_item_disabled(menu->get_item_index(FILE_RUN), current_is_doc);
}
+void ScriptEditor::_file_menu_closed() {
+ PopupMenu *menu = file_menu->get_popup();
+
+ menu->set_item_disabled(menu->get_item_index(FILE_REOPEN_CLOSED), false);
+
+ menu->set_item_disabled(menu->get_item_index(FILE_SAVE), false);
+ menu->set_item_disabled(menu->get_item_index(FILE_SAVE_AS), false);
+ menu->set_item_disabled(menu->get_item_index(FILE_SAVE_ALL), false);
+
+ menu->set_item_disabled(menu->get_item_index(FILE_TOOL_RELOAD_SOFT), false);
+ menu->set_item_disabled(menu->get_item_index(FILE_COPY_PATH), false);
+ menu->set_item_disabled(menu->get_item_index(SHOW_IN_FILE_SYSTEM), false);
+
+ menu->set_item_disabled(menu->get_item_index(WINDOW_PREV), false);
+ menu->set_item_disabled(menu->get_item_index(WINDOW_NEXT), false);
+
+ menu->set_item_disabled(menu->get_item_index(FILE_CLOSE), false);
+ menu->set_item_disabled(menu->get_item_index(CLOSE_ALL), false);
+ menu->set_item_disabled(menu->get_item_index(CLOSE_OTHER_TABS), false);
+ menu->set_item_disabled(menu->get_item_index(CLOSE_DOCS), false);
+
+ menu->set_item_disabled(menu->get_item_index(FILE_RUN), false);
+}
+
void ScriptEditor::_tab_changed(int p_which) {
ensure_select_current();
}
@@ -3916,6 +3940,7 @@ ScriptEditor::ScriptEditor() {
file_menu->get_popup()->add_shortcut(ED_SHORTCUT("script_editor/toggle_scripts_panel", TTR("Toggle Scripts Panel"), KeyModifierMask::CMD_OR_CTRL | Key::BACKSLASH), TOGGLE_SCRIPTS_PANEL);
file_menu->get_popup()->connect("id_pressed", callable_mp(this, &ScriptEditor::_menu_option));
file_menu->get_popup()->connect("about_to_popup", callable_mp(this, &ScriptEditor::_prepare_file_menu));
+ file_menu->get_popup()->connect("popup_hide", callable_mp(this, &ScriptEditor::_file_menu_closed));
script_search_menu = memnew(MenuButton);
script_search_menu->set_text(TTR("Search"));
diff --git a/editor/plugins/script_editor_plugin.h b/editor/plugins/script_editor_plugin.h
index f8e684ae34..7d2f5ad22a 100644
--- a/editor/plugins/script_editor_plugin.h
+++ b/editor/plugins/script_editor_plugin.h
@@ -336,6 +336,7 @@ class ScriptEditor : public PanelContainer {
bool _has_docs_tab() const;
bool _has_script_tab() const;
void _prepare_file_menu();
+ void _file_menu_closed();
Tree *disk_changed_list = nullptr;
ConfirmationDialog *disk_changed = nullptr;