diff options
author | Brecht Van Lommel <brechtvanlommel@pandora.be> | 2013-03-15 23:56:29 +0400 |
---|---|---|
committer | Brecht Van Lommel <brechtvanlommel@pandora.be> | 2013-03-15 23:56:29 +0400 |
commit | 88cf1a2bc73bbd2f2fbf2ba3d5b1e7d4a1db7a93 (patch) | |
tree | 0ff0b71ff27279f622be9ff872d100a64abc3aa4 /source/blender/editors/space_file/space_file.c | |
parent | 433c82649e0eb7380dd8c6092e6b49cd1b84df26 (diff) |
Screen: add exit callback for area and region types, this gets called when
hiding or removing an area or region.
Diffstat (limited to 'source/blender/editors/space_file/space_file.c')
-rw-r--r-- | source/blender/editors/space_file/space_file.c | 18 |
1 files changed, 13 insertions, 5 deletions
diff --git a/source/blender/editors/space_file/space_file.c b/source/blender/editors/space_file/space_file.c index 325487fb30c..698c355fad3 100644 --- a/source/blender/editors/space_file/space_file.c +++ b/source/blender/editors/space_file/space_file.c @@ -146,7 +146,7 @@ static void file_free(SpaceLink *sl) /* spacetype; init callback, area size changes, screen set, etc */ -static void file_init(struct wmWindowManager *UNUSED(wm), ScrArea *sa) +static void file_init(wmWindowManager *UNUSED(wm), ScrArea *sa) { SpaceFile *sfile = (SpaceFile *)sa->spacedata.first; //printf("file_init\n"); @@ -157,6 +157,12 @@ static void file_init(struct wmWindowManager *UNUSED(wm), ScrArea *sa) if (sfile->layout) sfile->layout->dirty = TRUE; } +static void file_exit(wmWindowManager *wm, ScrArea *sa) +{ + SpaceFile *sfile = (SpaceFile *)sa->spacedata.first; + + ED_fileselect_exit(wm, sfile); +} static SpaceLink *file_duplicate(SpaceLink *sl) { @@ -186,6 +192,7 @@ static SpaceLink *file_duplicate(SpaceLink *sl) static void file_refresh(const bContext *C, ScrArea *UNUSED(sa)) { + wmWindowManager *wm = CTX_wm_manager(C); SpaceFile *sfile = CTX_wm_space_file(C); FileSelectParams *params = ED_fileselect_get_params(sfile); @@ -201,7 +208,7 @@ static void file_refresh(const bContext *C, ScrArea *UNUSED(sa)) filelist_setfilter_types(sfile->files, params->filter_glob); if (filelist_empty(sfile->files)) { - thumbnails_stop(sfile->files, C); + thumbnails_stop(wm, sfile->files); filelist_readdir(sfile->files); if (params->sort != FILE_SORT_NONE) { filelist_sort(sfile->files, params->sort); @@ -213,7 +220,7 @@ static void file_refresh(const bContext *C, ScrArea *UNUSED(sa)) } else { if (params->sort != FILE_SORT_NONE) { - thumbnails_stop(sfile->files, C); + thumbnails_stop(wm, sfile->files); filelist_sort(sfile->files, params->sort); if (params->display == FILE_IMGDISPLAY) { thumbnails_start(sfile->files, C); @@ -221,14 +228,14 @@ static void file_refresh(const bContext *C, ScrArea *UNUSED(sa)) } else { if (params->display == FILE_IMGDISPLAY) { - if (!thumbnails_running(sfile->files, C)) { + if (!thumbnails_running(wm, sfile->files)) { thumbnails_start(sfile->files, C); } } else { /* stop any running thumbnail jobs if we're not * displaying them - speedup for NFS */ - thumbnails_stop(sfile->files, C); + thumbnails_stop(wm, sfile->files); } filelist_filter(sfile->files); } @@ -576,6 +583,7 @@ void ED_spacetype_file(void) st->new = file_new; st->free = file_free; st->init = file_init; + st->exit = file_exit; st->duplicate = file_duplicate; st->refresh = file_refresh; st->listener = file_listener; |