diff options
author | Campbell Barton <ideasman42@gmail.com> | 2012-09-17 06:19:41 +0400 |
---|---|---|
committer | Campbell Barton <ideasman42@gmail.com> | 2012-09-17 06:19:41 +0400 |
commit | 3cae9ca04353c33eb940ba2dccefe9b69d9e0ae7 (patch) | |
tree | 1ea9aa812c9e6fb239e7650600a038e8b9203ed7 /source/blender/editors/space_file/fsmenu.c | |
parent | a5003727c59859e8e9e2650ce18532ebc5771a88 (diff) |
fix [#32564] Entries in recent list (file select dialog) don't get pushed to top if used again
Diffstat (limited to 'source/blender/editors/space_file/fsmenu.c')
-rw-r--r-- | source/blender/editors/space_file/fsmenu.c | 10 |
1 files changed, 9 insertions, 1 deletions
diff --git a/source/blender/editors/space_file/fsmenu.c b/source/blender/editors/space_file/fsmenu.c index 474ec81ad93..3877534e1dc 100644 --- a/source/blender/editors/space_file/fsmenu.c +++ b/source/blender/editors/space_file/fsmenu.c @@ -164,14 +164,22 @@ void fsmenu_insert_entry(struct FSMenu *fsmenu, FSMenuCategory category, const c FSMenuEntry *prev; FSMenuEntry *fsme; FSMenuEntry *fsms; + FSMenuEntry *fsms_first; fsms = fsmenu_get_category(fsmenu, category); - prev = fsme = fsms; + prev = fsme = fsms_first = fsms; for (; fsme; prev = fsme, fsme = fsme->next) { if (fsme->path) { const int cmp_ret = BLI_path_cmp(path, fsme->path); if (cmp_ret == 0) { + if (FS_INSERT_FIRST) { + if (fsme != fsms_first) { + prev->next = fsme->next; + fsme->next = fsms_first; + fsmenu_set_category(fsmenu, category, fsme); + } + } return; } else if ((flag & FS_INSERT_SORTED) && cmp_ret < 0) { |