diff options
author | James Buck <jamesbuck11@gmail.com> | 2023-04-07 17:44:37 +0200 |
---|---|---|
committer | Yuri Sizov <yuris@humnom.net> | 2023-04-07 17:44:37 +0200 |
commit | 861399fbe58c05633cb51eaf381d976ed59e122a (patch) | |
tree | caf7295521500768e0a60d067f3bb1f6986ffafe /editor | |
parent | 1aa5fce3214323e1bfd25762acd3904304d360d1 (diff) |
Re-enable script editor File menu shortcuts when the menu is hidden
(cherry picked from commit de49bec30e8e2fc5881871a50f9222d90aacc24f)
Diffstat (limited to 'editor')
-rw-r--r-- | editor/plugins/script_editor_plugin.cpp | 25 | ||||
-rw-r--r-- | editor/plugins/script_editor_plugin.h | 1 |
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; |