Screen: add exit callback for area and region types, this gets called when
hiding or removing an area or region.
This commit is contained in:
@@ -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;
|
||||
|
Reference in New Issue
Block a user