@@ -2931,7 +2931,7 @@ void AnimationTrackEdit::gui_input(const Ref<InputEvent> &p_event) {
29312931 }
29322932 if (selected || editor->is_selection_active ()) {
29332933 AnimationPlayer *player = AnimationPlayerEditor::get_singleton ()->get_player ();
2934- if (!player->has_animation (SceneStringName (RESET)) || animation != player->get_animation (SceneStringName (RESET))) {
2934+ if (( !player->has_animation (SceneStringName (RESET)) || animation != player->get_animation (SceneStringName (RESET))) && editor-> can_add_reset_key ( )) {
29352935 menu->add_icon_item (get_editor_theme_icon (SNAME (" Reload" )), TTR (" Add RESET Value(s)" ), MENU_KEY_ADD_RESET);
29362936 }
29372937
@@ -4526,6 +4526,16 @@ bool AnimationTrackEditor::is_snap_enabled() const {
45264526 return snap->is_pressed () ^ Input::get_singleton ()->is_key_pressed (Key::CMD_OR_CTRL);
45274527}
45284528
4529+ bool AnimationTrackEditor::can_add_reset_key () const {
4530+ for (const KeyValue<SelectedKey, KeyInfo> &E : selection) {
4531+ const Animation::TrackType track_type = animation->track_get_type (E.key .track );
4532+ if (track_type != Animation::TYPE_ANIMATION && track_type != Animation::TYPE_AUDIO && track_type != Animation::TYPE_METHOD) {
4533+ return true ;
4534+ }
4535+ }
4536+ return false ;
4537+ }
4538+
45294539void AnimationTrackEditor::_update_tracks () {
45304540 int selected = _get_track_selected ();
45314541
@@ -6611,6 +6621,11 @@ void AnimationTrackEditor::_edit_menu_pressed(int p_option) {
66116621 for (const KeyValue<SelectedKey, KeyInfo> &E : selection) {
66126622 const SelectedKey &sk = E.key ;
66136623
6624+ const Animation::TrackType track_type = animation->track_get_type (E.key .track );
6625+ if (track_type == Animation::TYPE_ANIMATION || track_type == Animation::TYPE_AUDIO || track_type == Animation::TYPE_METHOD) {
6626+ continue ;
6627+ }
6628+
66146629 // Only add one key per track.
66156630 if (tracks_added.has (sk.track )) {
66166631 continue ;
0 commit comments