diff --git a/modules/gridmap/editor/grid_map_editor_plugin.cpp b/modules/gridmap/editor/grid_map_editor_plugin.cpp index caa7a79874b..432ce5ffa3e 100644 --- a/modules/gridmap/editor/grid_map_editor_plugin.cpp +++ b/modules/gridmap/editor/grid_map_editor_plugin.cpp @@ -646,6 +646,7 @@ EditorPlugin::AfterGUIInput GridMapEditor::forward_spatial_input_event(Camera3D Ref k = p_event; if (k.is_valid() && k->is_pressed() && !k->is_echo()) { + // Transform mode (toggle button): // If we are in Transform mode we pass the events to the 3D editor, // but if the Transform mode shortcut is pressed again, we go back to Selection mode. if (mode_buttons_group->get_pressed_button() == transform_mode_button) { @@ -656,7 +657,7 @@ EditorPlugin::AfterGUIInput GridMapEditor::forward_spatial_input_event(Camera3D } return EditorPlugin::AFTER_GUI_INPUT_PASS; } - + // Tool modes and tool actions: for (BaseButton *b : viewport_shortcut_buttons) { if (b->is_disabled()) { continue; @@ -673,9 +674,7 @@ EditorPlugin::AfterGUIInput GridMapEditor::forward_spatial_input_event(Camera3D return EditorPlugin::AFTER_GUI_INPUT_STOP; } } - } - - if (k.is_valid() && k->is_pressed() && !k->is_echo()) { + // Hard key actions: if (k->get_keycode() == Key::ESCAPE) { if (input_action == INPUT_PASTE) { _clear_clipboard_data(); @@ -692,7 +691,7 @@ EditorPlugin::AfterGUIInput GridMapEditor::forward_spatial_input_event(Camera3D return EditorPlugin::AFTER_GUI_INPUT_STOP; } } - + // Options menu shortcuts: Ref ed_shortcut = ED_GET_SHORTCUT("grid_map/previous_floor"); if (ed_shortcut.is_valid() && ed_shortcut->matches_event(p_event)) { accept_event(); @@ -1396,6 +1395,7 @@ GridMapEditor::GridMapEditor() { fill_action_button->connect(SceneStringName(pressed), callable_mp(this, &GridMapEditor::_menu_option).bind(MENU_OPTION_SELECTION_FILL)); action_buttons->add_child(fill_action_button); + viewport_shortcut_buttons.push_back(fill_action_button); move_action_button = memnew(Button); move_action_button->set_theme_type_variation("FlatButton"); @@ -1403,6 +1403,7 @@ GridMapEditor::GridMapEditor() { move_action_button->connect(SceneStringName(pressed), callable_mp(this, &GridMapEditor::_menu_option).bind(MENU_OPTION_SELECTION_CUT)); action_buttons->add_child(move_action_button); + viewport_shortcut_buttons.push_back(move_action_button); duplicate_action_button = memnew(Button); duplicate_action_button->set_theme_type_variation("FlatButton"); @@ -1410,6 +1411,7 @@ GridMapEditor::GridMapEditor() { duplicate_action_button->connect(SceneStringName(pressed), callable_mp(this, &GridMapEditor::_menu_option).bind(MENU_OPTION_SELECTION_DUPLICATE)); action_buttons->add_child(duplicate_action_button); + viewport_shortcut_buttons.push_back(duplicate_action_button); delete_action_button = memnew(Button); delete_action_button->set_theme_type_variation("FlatButton"); @@ -1417,6 +1419,7 @@ GridMapEditor::GridMapEditor() { delete_action_button->connect(SceneStringName(pressed), callable_mp(this, &GridMapEditor::_menu_option).bind(MENU_OPTION_SELECTION_CLEAR)); action_buttons->add_child(delete_action_button); + viewport_shortcut_buttons.push_back(delete_action_button); vsep = memnew(VSeparator); toolbar->add_child(vsep); @@ -1430,6 +1433,7 @@ GridMapEditor::GridMapEditor() { rotate_x_button->connect(SceneStringName(pressed), callable_mp(this, &GridMapEditor::_menu_option).bind(MENU_OPTION_CURSOR_ROTATE_X)); rotation_buttons->add_child(rotate_x_button); + viewport_shortcut_buttons.push_back(rotate_x_button); rotate_y_button = memnew(Button); rotate_y_button->set_theme_type_variation("FlatButton"); @@ -1437,6 +1441,7 @@ GridMapEditor::GridMapEditor() { rotate_y_button->connect(SceneStringName(pressed), callable_mp(this, &GridMapEditor::_menu_option).bind(MENU_OPTION_CURSOR_ROTATE_Y)); rotation_buttons->add_child(rotate_y_button); + viewport_shortcut_buttons.push_back(rotate_y_button); rotate_z_button = memnew(Button); rotate_z_button->set_theme_type_variation("FlatButton"); @@ -1444,6 +1449,7 @@ GridMapEditor::GridMapEditor() { rotate_z_button->connect(SceneStringName(pressed), callable_mp(this, &GridMapEditor::_menu_option).bind(MENU_OPTION_CURSOR_ROTATE_Z)); rotation_buttons->add_child(rotate_z_button); + viewport_shortcut_buttons.push_back(rotate_z_button); // Wide empty separation control. (like BoxContainer::add_spacer()) Control *c = memnew(Control);