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:
authorPhilipp Oeser <info@graphics-engineer.com>2021-11-25 19:31:31 +0300
committerJulian Eisel <julian@blender.org>2021-11-25 19:32:40 +0300
commitb2bb3e4b722bad7e887a66ac4a6f589b389e6dc5 (patch)
tree8d3438359b3d9babb0c00414e82b6b7f9603a512 /source/blender/editors/space_file
parent5a11c6e558c6581cc07d2a1d67db460241255f09 (diff)
Fix T90082: Autoscrolling after renaming in the File Browser broken
Caused by 6b0869039a40 Above commit introduced selection after renaming. This includes calling `file_select_deselect_all` [which resorts and refilters]. So now, to have the correct file for scrolling, get it again after sorting by calling `file_params_find_renamed` again. Differential Revision: https://developer.blender.org/D13368
Diffstat (limited to 'source/blender/editors/space_file')
-rw-r--r--source/blender/editors/space_file/filesel.c6
1 files changed, 5 insertions, 1 deletions
diff --git a/source/blender/editors/space_file/filesel.c b/source/blender/editors/space_file/filesel.c
index c59398e0016..37b1d3825d4 100644
--- a/source/blender/editors/space_file/filesel.c
+++ b/source/blender/editors/space_file/filesel.c
@@ -1372,7 +1372,7 @@ void file_params_renamefile_activate(SpaceFile *sfile, FileSelectParams *params)
BLI_assert(params->renamefile[0] != '\0' || params->rename_id != NULL);
- const int idx = file_params_find_renamed(params, sfile->files);
+ int idx = file_params_find_renamed(params, sfile->files);
if (idx >= 0) {
FileDirEntry *file = filelist_file(sfile->files, idx);
BLI_assert(file != NULL);
@@ -1385,7 +1385,11 @@ void file_params_renamefile_activate(SpaceFile *sfile, FileSelectParams *params)
params->rename_flag = FILE_PARAMS_RENAME_ACTIVE;
}
else if ((params->rename_flag & FILE_PARAMS_RENAME_POSTSCROLL_PENDING) != 0) {
+ /* file_select_deselect_all() will resort and refilter, so idx will probably have changed.
+ * Need to get the correct FileDirEntry again. */
file_select_deselect_all(sfile, FILE_SEL_SELECTED);
+ idx = file_params_find_renamed(params, sfile->files);
+ file = filelist_file(sfile->files, idx);
filelist_entry_select_set(
sfile->files, file, FILE_SEL_ADD, FILE_SEL_SELECTED | FILE_SEL_HIGHLIGHTED, CHECK_ALL);
params->active_file = idx;