Welcome to mirror list, hosted at ThFree Co, Russian Federation.

git.blender.org/blender.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
Diffstat (limited to 'source/blender/editors/space_file/filesel.c')
-rw-r--r--source/blender/editors/space_file/filesel.c14
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);