diff --git a/editor/plugins/sprite_frames_editor_plugin.cpp b/editor/plugins/sprite_frames_editor_plugin.cpp index b0b9727c05a..7cb76619b05 100644 --- a/editor/plugins/sprite_frames_editor_plugin.cpp +++ b/editor/plugins/sprite_frames_editor_plugin.cpp @@ -1326,7 +1326,7 @@ void SpriteFramesEditor::_frame_list_gui_input(const Ref &p_event) { menu = memnew(PopupMenu); add_child(menu); menu->connect(SceneStringName(id_pressed), callable_mp(this, &SpriteFramesEditor::_menu_selected)); - menu->add_icon_item(get_editor_theme_icon(SNAME("ShowInFileSystem")), TTRC("Show in FileSystem")); + menu->add_icon_item(get_editor_theme_icon(SNAME("ShowInFileSystem")), TTRC("Show in FileSystem"), MENU_SHOW_IN_FILESYSTEM); } menu->set_position(get_screen_position() + get_local_mouse_position()); @@ -1336,12 +1336,14 @@ void SpriteFramesEditor::_frame_list_gui_input(const Ref &p_event) { } } -void SpriteFramesEditor::_menu_selected(int p_index) { - switch (p_index) { +void SpriteFramesEditor::_menu_selected(int p_id) { + switch (p_id) { case MENU_SHOW_IN_FILESYSTEM: { - String path = frames->get_frame_texture(edited_anim, right_clicked_frame)->get_path(); + Ref frame_texture = frames->get_frame_texture(edited_anim, right_clicked_frame); + ERR_FAIL_COND(frame_texture.is_null()); + String path = frame_texture->get_path(); // Check if the file is an atlas resource, if it is find the source texture. - Ref at = frames->get_frame_texture(edited_anim, right_clicked_frame); + Ref at = frame_texture; while (at.is_valid() && at->get_atlas().is_valid()) { path = at->get_atlas()->get_path(); at = at->get_atlas(); diff --git a/editor/plugins/sprite_frames_editor_plugin.h b/editor/plugins/sprite_frames_editor_plugin.h index 6e58a355a0a..2de99c1501c 100644 --- a/editor/plugins/sprite_frames_editor_plugin.h +++ b/editor/plugins/sprite_frames_editor_plugin.h @@ -228,7 +228,7 @@ class SpriteFramesEditor : public HSplitContainer { void _frame_list_gui_input(const Ref &p_event); void _frame_list_item_selected(int p_index, bool p_selected); - void _menu_selected(int p_index); + void _menu_selected(int p_id); void _zoom_in(); void _zoom_out();