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:
authorBastien Montagne <montagne29@wanadoo.fr>2019-03-05 18:17:09 +0300
committerBastien Montagne <montagne29@wanadoo.fr>2019-03-05 23:05:02 +0300
commit8858311463b7220eef383781d31dde31868fcd7c (patch)
tree8e065129ce3fa6979d5a44719444676fbdb4afa2 /source/blender/editors/space_file/filesel.c
parentd31b2f854954838fb849b5b0be0011d792eecb43 (diff)
Fix T58715: File Browser: Creating "New Folder" issues with too many existing folders in display.
Smotthscroll to edited entry was broken since filelisting was rewritten to become async...
Diffstat (limited to 'source/blender/editors/space_file/filesel.c')
-rw-r--r--source/blender/editors/space_file/filesel.c20
1 files changed, 20 insertions, 0 deletions
diff --git a/source/blender/editors/space_file/filesel.c b/source/blender/editors/space_file/filesel.c
index cc81982bfad..7b642e75eac 100644
--- a/source/blender/editors/space_file/filesel.c
+++ b/source/blender/editors/space_file/filesel.c
@@ -732,5 +732,25 @@ void ED_fileselect_exit(wmWindowManager *wm, ScrArea *sa, SpaceFile *sfile)
MEM_freeN(sfile->files);
sfile->files = NULL;
}
+}
+
+/** Helper used by both main update code, and smoothscroll timer, to try to enable rename editing from
+ * params->renamefile name. */
+void file_params_renamefile_activate(SpaceFile *sfile, FileSelectParams *params)
+{
+ BLI_assert(params->renamefile[0] != '\0');
+ const int idx = filelist_file_findpath(sfile->files, params->renamefile);
+ if (idx >= 0) {
+ FileDirEntry *file = filelist_file(sfile->files, idx);
+ if (file) {
+ filelist_entry_select_set(sfile->files, file, FILE_SEL_ADD, FILE_SEL_EDITING, CHECK_ALL);
+ }
+ }
+ BLI_strncpy(sfile->params->renameedit, sfile->params->renamefile, sizeof(sfile->params->renameedit));
+ /* File listing is now async, do not clear renamefile if matching entry not found
+ * and dirlist is not finished! */
+ if (idx >= 0 || filelist_is_ready(sfile->files)) {
+ params->renamefile[0] = '\0';
+ }
}