diff options
Diffstat (limited to 'source/blender/editors/space_file/filesel.c')
-rw-r--r-- | source/blender/editors/space_file/filesel.c | 14 |
1 files changed, 14 insertions, 0 deletions
diff --git a/source/blender/editors/space_file/filesel.c b/source/blender/editors/space_file/filesel.c index 66eb79abae2..ef29b720eed 100644 --- a/source/blender/editors/space_file/filesel.c +++ b/source/blender/editors/space_file/filesel.c @@ -287,6 +287,17 @@ void ED_fileselect_reset_params(SpaceFile *sfile) sfile->params->active_file = -1; } +/** + * Sets FileSelectParams->file (name of selected file) + */ +void fileselect_file_set(SpaceFile *sfile, const int index) +{ + const struct direntry *file = filelist_file(sfile->files, index); + if (file && file->relname[0] && !FILENAME_IS_PARENT(file->relname)) { + BLI_strncpy(sfile->params->file, file->relname, FILE_MAXFILE); + } +} + int ED_fileselect_layout_numfiles(FileLayout *layout, ARegion *ar) { int numfiles; @@ -583,6 +594,9 @@ void ED_file_change_dir(bContext *C, const bool checkdir) /* could return but just refresh the current dir */ } filelist_setdir(sfile->files, sfile->params->dir); + /* clear selected file to avoid trying to open it from the new dir with changed path */ + sfile->params->file[0] = '\0'; + sfile->params->active_file = -1; if (folderlist_clear_next(sfile)) folderlist_free(sfile->folders_next); |